summaryrefslogtreecommitdiff
path: root/GameCode
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-19 16:05:01 +0800
committerchai <215380520@qq.com>2024-05-19 16:05:01 +0800
commitc5f145786f4c6d2fe4bea831dfc16e52228920a5 (patch)
treea6ead7ea8266c767d58ed0f816dcd7a1dd75bd65 /GameCode
parent48b64e573a1709dc923cb9162b55be0246b3ff63 (diff)
* move
Diffstat (limited to 'GameCode')
-rw-r--r--GameCode/.gitignore399
-rw-r--r--GameCode/AchievementManager.cs78
-rw-r--r--GameCode/AfterMatchUIManager.cs251
-rw-r--r--GameCode/AimbotProjectile.cs166
-rw-r--r--GameCode/AnimateSizeAndDestroy.cs30
-rw-r--r--GameCode/ApplyUpgradeIndicatorColor.cs15
-rw-r--r--GameCode/AttackCooldownAnimation.cs50
-rw-r--r--GameCode/AudioDayNightFader.cs87
-rw-r--r--GameCode/AudioSet.cs403
-rw-r--r--GameCode/AutoAttack.cs102
-rw-r--r--GameCode/AutoAttackHighestHealth.cs15
-rw-r--r--GameCode/AutoAttackLowestHealth.cs17
-rw-r--r--GameCode/AutoRevive.cs91
-rw-r--r--GameCode/BackToTitlescreenUIHelper.cs9
-rw-r--r--GameCode/BackupAudioListener.cs24
-rw-r--r--GameCode/BakeTrail.cs38
-rw-r--r--GameCode/BarricadeDamage.cs63
-rw-r--r--GameCode/BeforeGamePopUp.cs11
-rw-r--r--GameCode/BillboardAlign.cs18
-rw-r--r--GameCode/BlacksmithUpgrade.cs88
-rw-r--r--GameCode/BlacksmithUpgrades.cs35
-rw-r--r--GameCode/BoatAnimation.cs37
-rw-r--r--GameCode/BuildSlot.cs616
-rw-r--r--GameCode/BuildingDestructionHandler.cs62
-rw-r--r--GameCode/BuildingFXProcessor.cs65
-rw-r--r--GameCode/BuildingInteractor.cs437
-rw-r--r--GameCode/BuildingMeshTracker.cs59
-rw-r--r--GameCode/CameraBounds.cs135
-rw-r--r--GameCode/CameraController.cs56
-rw-r--r--GameCode/CameraRig.cs120
-rw-r--r--GameCode/CancelOrOpenPauseMenu.cs30
-rw-r--r--GameCode/Checkbox.cs29
-rw-r--r--GameCode/Choice.cs22
-rw-r--r--GameCode/ChoiceManager.cs83
-rw-r--r--GameCode/ChoiceUI.cs48
-rw-r--r--GameCode/ChoiceUIFrameHelper.cs103
-rw-r--r--GameCode/Coin.cs137
-rw-r--r--GameCode/CoinSpawner.cs63
-rw-r--r--GameCode/Coinslot.cs76
-rw-r--r--GameCode/ColorAndLightManager.cs235
-rw-r--r--GameCode/Colorscheme.cs98
-rw-r--r--GameCode/CommandUnits.cs261
-rw-r--r--GameCode/CostDisplay.cs256
-rw-r--r--GameCode/CustomPostProcess.cs62
-rw-r--r--GameCode/DamageModifyer.cs39
-rw-r--r--GameCode/DayNightCycle.cs202
-rw-r--r--GameCode/DaytimeDisplay.cs15
-rw-r--r--GameCode/DaytimeSensitiveActivation.cs49
-rw-r--r--GameCode/DaytimeSensitiveLight.cs83
-rw-r--r--GameCode/DebugBuildingDestroyer.cs33
-rw-r--r--GameCode/DebugCoinDisplay.cs19
-rw-r--r--GameCode/DebugController.cs133
-rw-r--r--GameCode/DemoQuitSwitch.cs11
-rw-r--r--GameCode/DestroyAfter.cs15
-rw-r--r--GameCode/DestroyOrDisableOnEnable.cs27
-rw-r--r--GameCode/DisableOnStart.cs9
-rw-r--r--GameCode/EnableAllChildren.cs12
-rw-r--r--GameCode/EndOfMatchScoreUIHelper.cs636
-rw-r--r--GameCode/EndOfMatchUI.cs39
-rw-r--r--GameCode/EnemyScreenMarkerUIHelper.cs54
-rw-r--r--GameCode/EnemySpawnManager.cs19
-rw-r--r--GameCode/EnemySpawner.cs287
-rw-r--r--GameCode/EnumSelector.cs163
-rw-r--r--GameCode/EnumSelectorButtonAnimation.cs14
-rw-r--r--GameCode/Equippable.cs15
-rw-r--r--GameCode/EquippableBuildingUpgrade.cs6
-rw-r--r--GameCode/EquippableMutation.cs7
-rw-r--r--GameCode/EquippablePerk.cs6
-rw-r--r--GameCode/EquippableWeapon.cs6
-rw-r--r--GameCode/FakeChildTo.cs33
-rw-r--r--GameCode/FakeTransorm.cs41
-rw-r--r--GameCode/FireArcherBurn.cs83
-rw-r--r--GameCode/FishingHarbour.cs58
-rw-r--r--GameCode/FishingHarbourUpgrade.cs15
-rw-r--r--GameCode/ForceCameraPosOnEnable.cs27
-rw-r--r--GameCode/FromToAnimation.cs45
-rw-r--r--GameCode/GPUInstanced.cs80
-rw-r--r--GameCode/GPUInstancingManager.cs119
-rw-r--r--GameCode/GateOpener.cs172
-rw-r--r--GameCode/GlobalAudioListener.cs48
-rw-r--r--GameCode/GraphDrawer.cs125
-rw-r--r--GameCode/HealBoostMA.cs55
-rw-r--r--GameCode/Healthbar.cs172
-rw-r--r--GameCode/HealthbarMulti.cs46
-rw-r--r--GameCode/HighscorePreviewUI.cs66
-rw-r--r--GameCode/HighscoreTable.cs99
-rw-r--r--GameCode/HotOilTower.cs97
-rw-r--r--GameCode/Hp.cs375
-rw-r--r--GameCode/InGameResignUIHelper.cs10
-rw-r--r--GameCode/IncomeModifyer.cs17
-rw-r--r--GameCode/InteractorBase.cs27
-rw-r--r--GameCode/Invulnerable.cs16
-rw-r--r--GameCode/KeepRelativeRotationTo.cs59
-rw-r--r--GameCode/KeyframedBoss.cs178
-rw-r--r--GameCode/LaunchableDefenseMechanismInteractor.cs83
-rw-r--r--GameCode/LaunchableProjectile.cs66
-rw-r--r--GameCode/LevelAudio.cs69
-rw-r--r--GameCode/LevelBorder.cs98
-rw-r--r--GameCode/LevelData.cs46
-rw-r--r--GameCode/LevelInteractor.cs280
-rw-r--r--GameCode/LevelProgressManager.cs57
-rw-r--r--GameCode/LevelSelectManager.cs114
-rw-r--r--GameCode/LevelSelectUIFrameHelper.cs17
-rw-r--r--GameCode/LevelUpScreenAnimation.cs29
-rw-r--r--GameCode/LimitDeltaTime.cs11
-rw-r--r--GameCode/LimitedLifetime.cs11
-rw-r--r--GameCode/LoadSceneOnTop.cs25
-rw-r--r--GameCode/LoadoutUIHelper.cs398
-rw-r--r--GameCode/LocalGamestate.cs131
-rw-r--r--GameCode/LvlSelectTabButton.cs51
-rw-r--r--GameCode/ManualAttack.cs247
-rw-r--r--GameCode/MaterialFlasherFX.cs77
-rw-r--r--GameCode/MetaLevel.cs9
-rw-r--r--GameCode/MillRotor.cs44
-rw-r--r--GameCode/Mill_ImprovedPlow.cs26
-rw-r--r--GameCode/Mill_ImprovementExplosiveTrap.cs64
-rw-r--r--GameCode/Mill_ImprovementWindSpirits.cs104
-rw-r--r--GameCode/Mill_Improvement_Scarecrows.cs26
-rw-r--r--GameCode/MineShaft.cs141
-rw-r--r--GameCode/MusicManager.cs163
-rw-r--r--GameCode/NightCall.cs140
-rw-r--r--GameCode/NightLight.cs98
-rw-r--r--GameCode/Nighthorn.cs168
-rw-r--r--GameCode/NightscoreUI.cs295
-rw-r--r--GameCode/OnDamageFeedbackHandler.cs28
-rw-r--r--GameCode/OneShotAnimationBase.cs6
-rw-r--r--GameCode/PathMesher.cs339
-rw-r--r--GameCode/PathfindMovement.cs15
-rw-r--r--GameCode/PathfindMovementEnemy.cs283
-rw-r--r--GameCode/PathfindMovementPlayerunit.cs326
-rw-r--r--GameCode/PauseUILoadoutHelper.cs161
-rw-r--r--GameCode/PerkCooldownModifyer.cs20
-rw-r--r--GameCode/PerkCostModifyer.cs21
-rw-r--r--GameCode/PerkDamageModifyerPlayerunitAuto.cs26
-rw-r--r--GameCode/PerkDestroyGameObjectModifyer.cs28
-rw-r--r--GameCode/PerkHpModifyer.cs31
-rw-r--r--GameCode/PerkIncomeModifyer.cs24
-rw-r--r--GameCode/PerkIndestructible.cs24
-rw-r--r--GameCode/PerkManager.cs193
-rw-r--r--GameCode/PerkPoint.cs6
-rw-r--r--GameCode/PerkRangeModifyer.cs28
-rw-r--r--GameCode/PerkSelectionGroup.cs165
-rw-r--r--GameCode/PerkSelectionItem.cs80
-rw-r--r--GameCode/PerkSelectionTooltipHelper.cs115
-rw-r--r--GameCode/PerkWeaponModifyer.cs19
-rw-r--r--GameCode/PhysicalCoinAnimator.cs26
-rw-r--r--GameCode/PlayLevelButton.cs40
-rw-r--r--GameCode/PlayMusicOnStart.cs31
-rw-r--r--GameCode/PlayOneShotAfterSeconds.cs22
-rw-r--r--GameCode/PlayerAttack.cs30
-rw-r--r--GameCode/PlayerAttackAnimator.cs27
-rw-r--r--GameCode/PlayerAttackTargetFacer.cs66
-rw-r--r--GameCode/PlayerCharacterAudio.cs94
-rw-r--r--GameCode/PlayerHpRegen.cs60
-rw-r--r--GameCode/PlayerInteraction.cs205
-rw-r--r--GameCode/PlayerManager.cs68
-rw-r--r--GameCode/PlayerMovement.cs152
-rw-r--r--GameCode/PlayerScept.cs85
-rw-r--r--GameCode/PlayerUpgradeManager.cs70
-rw-r--r--GameCode/PlayerWeaponAudio.cs55
-rw-r--r--GameCode/PlayerWeaponVisuals.cs31
-rw-r--r--GameCode/PositionAnimation.cs42
-rw-r--r--GameCode/PowerTowerPerk.cs56
-rw-r--r--GameCode/PracticeTargetCoinDrop.cs33
-rw-r--r--GameCode/PriorityAudioListener.cs27
-rw-r--r--GameCode/ProductionBar.cs23
-rw-r--r--GameCode/ProjectileAudio.cs37
-rw-r--r--GameCode/ProjectileImpactParticles.cs22
-rw-r--r--GameCode/ProjectileSpawnAudio.cs11
-rw-r--r--GameCode/Quest.cs114
-rw-r--r--GameCode/QuestConditionEquippable.cs33
-rw-r--r--GameCode/QuestEntry.cs87
-rw-r--r--GameCode/QuestMenu.cs21
-rw-r--r--GameCode/QuestTagUI.cs107
-rw-r--r--GameCode/RacerRoll.cs16
-rw-r--r--GameCode/ReduceChildrensBuildRequirementIfPerk.cs24
-rw-r--r--GameCode/ResetAudioSettings.cs13
-rw-r--r--GameCode/ResolutionExtensions.cs13
-rw-r--r--GameCode/RevivePanel.cs29
-rw-r--r--GameCode/RidingDamager.cs75
-rw-r--r--GameCode/RiverScroller.cs18
-rw-r--r--GameCode/RotateForwardToRVOVelocity.cs64
-rw-r--r--GameCode/SaveLoadManager.cs243
-rw-r--r--GameCode/ScaleAnimation.cs42
-rw-r--r--GameCode/ScalePulse.cs18
-rw-r--r--GameCode/SceneNameToLevelData.cs6
-rw-r--r--GameCode/SceneTransitionManager.cs254
-rw-r--r--GameCode/ScoreManager.cs150
-rw-r--r--GameCode/ScoreTag.cs21
-rw-r--r--GameCode/ScreenMarker.cs197
-rw-r--r--GameCode/ScreenMarkerCanvasHelper.cs19
-rw-r--r--GameCode/ScreenMarkerIcon.cs6
-rw-r--r--GameCode/ScreenMarkerManager.cs284
-rw-r--r--GameCode/SelfDestructWhenInRangeOf.cs33
-rw-r--r--GameCode/SetStateWhenMacOSX.cs13
-rw-r--r--GameCode/SetWidthToTarget.cs29
-rw-r--r--GameCode/SettingsAntiAliasing.cs26
-rw-r--r--GameCode/SettingsAudioVolume.cs26
-rw-r--r--GameCode/SettingsFullscreen.cs19
-rw-r--r--GameCode/SettingsLanguage.cs32
-rw-r--r--GameCode/SettingsLanguageReset.cs14
-rw-r--r--GameCode/SettingsManager.cs370
-rw-r--r--GameCode/SettingsPostProcessing.cs19
-rw-r--r--GameCode/SettingsPostProcessingHelper.cs18
-rw-r--r--GameCode/SettingsRenderScale.cs24
-rw-r--r--GameCode/SettingsResetUnitsMorning.cs19
-rw-r--r--GameCode/SettingsResetVideo.cs13
-rw-r--r--GameCode/SettingsResolution.cs40
-rw-r--r--GameCode/SettingsShadowResolution.cs26
-rw-r--r--GameCode/SettingsUIHelper.cs114
-rw-r--r--GameCode/SettingsUseLargeUI.cs22
-rw-r--r--GameCode/SharpCornerMidigator.cs46
-rw-r--r--GameCode/SimpleRotator.cs23
-rw-r--r--GameCode/SimpleUIScaler.cs43
-rw-r--r--GameCode/SimpleWalk.cs55
-rw-r--r--GameCode/SizeRectangleToMeshBounds.cs20
-rw-r--r--GameCode/Spawn.cs171
-rw-r--r--GameCode/SpinAnimation.cs45
-rw-r--r--GameCode/SplashDamageArea.cs51
-rw-r--r--GameCode/StabMA.cs71
-rw-r--r--GameCode/SteamManager.cs209
-rw-r--r--GameCode/SuperSimpleOceanAnimation.cs47
-rw-r--r--GameCode/SuspendPlayerCollisionUntilNoOverlap.cs96
-rw-r--r--GameCode/TFUIAudioHelper.cs53
-rw-r--r--GameCode/TFUIBlockoutElement.cs44
-rw-r--r--GameCode/TFUICheckboxMouseCatcher.cs43
-rw-r--r--GameCode/TFUIEnumMouseCatcher.cs51
-rw-r--r--GameCode/TFUIEnumSelectorButton.cs40
-rw-r--r--GameCode/TFUIEquippable.cs307
-rw-r--r--GameCode/TFUISlider.cs141
-rw-r--r--GameCode/TFUISliderDragArea.cs127
-rw-r--r--GameCode/TFUITextButton.cs195
-rw-r--r--GameCode/TFUIUpgradeChoice.cs203
-rw-r--r--GameCode/TagManager.cs223
-rw-r--r--GameCode/TaggedObject.cs59
-rw-r--r--GameCode/TargetPriority.cs127
-rw-r--r--GameCode/TextBackgroundFitter.cs24
-rw-r--r--GameCode/Thronefall.csproj344
-rw-r--r--GameCode/Thronefall.sln25
-rw-r--r--GameCode/ThronefallAudioManager.cs342
-rw-r--r--GameCode/ThronefallUIElement.cs166
-rw-r--r--GameCode/TimesensitiveLight.cs68
-rw-r--r--GameCode/TitleScreenPopUpHelper.cs28
-rw-r--r--GameCode/TitleScreenUIHelper.cs21
-rw-r--r--GameCode/Tooltip.cs63
-rw-r--r--GameCode/TooltipManager.cs102
-rw-r--r--GameCode/TreasureChestUIHelper.cs39
-rw-r--r--GameCode/TreasuryUI.cs224
-rw-r--r--GameCode/TutorialManager.cs662
-rw-r--r--GameCode/UIFrame.cs331
-rw-r--r--GameCode/UIFrameManager.cs286
-rw-r--r--GameCode/UIParentResizer.cs40
-rw-r--r--GameCode/UIScaleHandler.cs45
-rw-r--r--GameCode/UnitAttackAnimator.cs31
-rw-r--r--GameCode/UnitAudio.cs371
-rw-r--r--GameCode/UnitCommandRadiusAnimation.cs69
-rw-r--r--GameCode/UnitRespawnerForBuildings.cs113
-rw-r--r--GameCode/UnitSpawnAppear.cs36
-rw-r--r--GameCode/UnitySerializedDictionary.cs35
-rw-r--r--GameCode/UpgradeAssassinsTraining.cs16
-rw-r--r--GameCode/UpgradeBuildersGuild.cs51
-rw-r--r--GameCode/UpgradeCastleUp.cs46
-rw-r--r--GameCode/UpgradeCommander.cs47
-rw-r--r--GameCode/UpgradeGodlyCurse.cs9
-rw-r--r--GameCode/UpgradeMagicArmor.cs18
-rw-r--r--GameCode/UpgradePlayerDmg.cs11
-rw-r--r--GameCode/UpgradePlayerHp.cs17
-rw-r--r--GameCode/VersionNumberDisplay.cs12
-rw-r--r--GameCode/Wave.cs45
-rw-r--r--GameCode/WaveCountPopUp.cs77
-rw-r--r--GameCode/WaveDescriptionUI.cs26
-rw-r--r--GameCode/Weapon.cs225
-rw-r--r--GameCode/WeaponEquipper.cs29
-rw-r--r--GameCode/Wiggler.cs46
-rw-r--r--GameCode/WigglerAnimatedVelocity.cs45
-rw-r--r--GameCode/WigglerAnimationState.cs6
-rw-r--r--GameCode/WigglerVelocity.cs40
-rw-r--r--GameCode/WishlistButton.cs9
278 files changed, 0 insertions, 24822 deletions
diff --git a/GameCode/.gitignore b/GameCode/.gitignore
deleted file mode 100644
index a4da27a..0000000
--- a/GameCode/.gitignore
+++ /dev/null
@@ -1,399 +0,0 @@
-## Ignore Visual Studio temporary files, build results, and
-## files generated by popular Visual Studio add-ons.
-##
-## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
-
-# User-specific files
-*.rsuser
-*.suo
-*.user
-*.userosscache
-*.sln.docstates
-
-# User-specific files (MonoDevelop/Xamarin Studio)
-*.userprefs
-
-# Mono auto generated files
-mono_crash.*
-
-# Build results
-[Dd]ebug/
-[Dd]ebugPublic/
-[Rr]elease/
-[Rr]eleases/
-x64/
-x86/
-[Ww][Ii][Nn]32/
-[Aa][Rr][Mm]/
-[Aa][Rr][Mm]64/
-bld/
-[Bb]in/
-[Oo]bj/
-[Ll]og/
-[Ll]ogs/
-
-# Visual Studio 2015/2017 cache/options directory
-.vs/
-# Uncomment if you have tasks that create the project's static files in wwwroot
-#wwwroot/
-
-# Visual Studio 2017 auto generated files
-Generated\ Files/
-
-# MSTest test Results
-[Tt]est[Rr]esult*/
-[Bb]uild[Ll]og.*
-
-# NUnit
-*.VisualState.xml
-TestResult.xml
-nunit-*.xml
-
-# Build Results of an ATL Project
-[Dd]ebugPS/
-[Rr]eleasePS/
-dlldata.c
-
-# Benchmark Results
-BenchmarkDotNet.Artifacts/
-
-# .NET Core
-project.lock.json
-project.fragment.lock.json
-artifacts/
-
-# ASP.NET Scaffolding
-ScaffoldingReadMe.txt
-
-# StyleCop
-StyleCopReport.xml
-
-# Files built by Visual Studio
-*_i.c
-*_p.c
-*_h.h
-*.ilk
-*.meta
-*.obj
-*.iobj
-*.pch
-*.pdb
-*.ipdb
-*.pgc
-*.pgd
-*.rsp
-*.sbr
-*.tlb
-*.tli
-*.tlh
-*.tmp
-*.tmp_proj
-*_wpftmp.csproj
-*.log
-*.tlog
-*.vspscc
-*.vssscc
-.builds
-*.pidb
-*.svclog
-*.scc
-
-# Chutzpah Test files
-_Chutzpah*
-
-# Visual C++ cache files
-ipch/
-*.aps
-*.ncb
-*.opendb
-*.opensdf
-*.sdf
-*.cachefile
-*.VC.db
-*.VC.VC.opendb
-
-# Visual Studio profiler
-*.psess
-*.vsp
-*.vspx
-*.sap
-
-# Visual Studio Trace Files
-*.e2e
-
-# TFS 2012 Local Workspace
-$tf/
-
-# Guidance Automation Toolkit
-*.gpState
-
-# ReSharper is a .NET coding add-in
-_ReSharper*/
-*.[Rr]e[Ss]harper
-*.DotSettings.user
-
-# TeamCity is a build add-in
-_TeamCity*
-
-# DotCover is a Code Coverage Tool
-*.dotCover
-
-# AxoCover is a Code Coverage Tool
-.axoCover/*
-!.axoCover/settings.json
-
-# Coverlet is a free, cross platform Code Coverage Tool
-coverage*.json
-coverage*.xml
-coverage*.info
-
-# Visual Studio code coverage results
-*.coverage
-*.coveragexml
-
-# NCrunch
-_NCrunch_*
-.*crunch*.local.xml
-nCrunchTemp_*
-
-# MightyMoose
-*.mm.*
-AutoTest.Net/
-
-# Web workbench (sass)
-.sass-cache/
-
-# Installshield output folder
-[Ee]xpress/
-
-# DocProject is a documentation generator add-in
-DocProject/buildhelp/
-DocProject/Help/*.HxT
-DocProject/Help/*.HxC
-DocProject/Help/*.hhc
-DocProject/Help/*.hhk
-DocProject/Help/*.hhp
-DocProject/Help/Html2
-DocProject/Help/html
-
-# Click-Once directory
-publish/
-
-# Publish Web Output
-*.[Pp]ublish.xml
-*.azurePubxml
-# Note: Comment the next line if you want to checkin your web deploy settings,
-# but database connection strings (with potential passwords) will be unencrypted
-*.pubxml
-*.publishproj
-
-# Microsoft Azure Web App publish settings. Comment the next line if you want to
-# checkin your Azure Web App publish settings, but sensitive information contained
-# in these scripts will be unencrypted
-PublishScripts/
-
-# NuGet Packages
-*.nupkg
-# NuGet Symbol Packages
-*.snupkg
-# The packages folder can be ignored because of Package Restore
-**/[Pp]ackages/*
-# except build/, which is used as an MSBuild target.
-!**/[Pp]ackages/build/
-# Uncomment if necessary however generally it will be regenerated when needed
-#!**/[Pp]ackages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
-*.nuget.props
-*.nuget.targets
-
-# Microsoft Azure Build Output
-csx/
-*.build.csdef
-
-# Microsoft Azure Emulator
-ecf/
-rcf/
-
-# Windows Store app package directories and files
-AppPackages/
-BundleArtifacts/
-Package.StoreAssociation.xml
-_pkginfo.txt
-*.appx
-*.appxbundle
-*.appxupload
-
-# Visual Studio cache files
-# files ending in .cache can be ignored
-*.[Cc]ache
-# but keep track of directories ending in .cache
-!?*.[Cc]ache/
-
-# Others
-ClientBin/
-~$*
-*~
-*.dbmdl
-*.dbproj.schemaview
-*.jfm
-*.pfx
-*.publishsettings
-orleans.codegen.cs
-
-# Including strong name files can present a security risk
-# (https://github.com/github/gitignore/pull/2483#issue-259490424)
-#*.snk
-
-# Since there are multiple workflows, uncomment next line to ignore bower_components
-# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
-#bower_components/
-
-# RIA/Silverlight projects
-Generated_Code/
-
-# Backup & report files from converting an old project file
-# to a newer Visual Studio version. Backup files are not needed,
-# because we have git ;-)
-_UpgradeReport_Files/
-Backup*/
-UpgradeLog*.XML
-UpgradeLog*.htm
-ServiceFabricBackup/
-*.rptproj.bak
-
-# SQL Server files
-*.mdf
-*.ldf
-*.ndf
-
-# Business Intelligence projects
-*.rdl.data
-*.bim.layout
-*.bim_*.settings
-*.rptproj.rsuser
-*- [Bb]ackup.rdl
-*- [Bb]ackup ([0-9]).rdl
-*- [Bb]ackup ([0-9][0-9]).rdl
-
-# Microsoft Fakes
-FakesAssemblies/
-
-# GhostDoc plugin setting file
-*.GhostDoc.xml
-
-# Node.js Tools for Visual Studio
-.ntvs_analysis.dat
-node_modules/
-
-# Visual Studio 6 build log
-*.plg
-
-# Visual Studio 6 workspace options file
-*.opt
-
-# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
-*.vbw
-
-# Visual Studio 6 auto-generated project file (contains which files were open etc.)
-*.vbp
-
-# Visual Studio 6 workspace and project file (working project files containing files to include in project)
-*.dsw
-*.dsp
-
-# Visual Studio 6 technical files
-*.ncb
-*.aps
-
-# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
-
-# Paket dependency manager
-.paket/paket.exe
-paket-files/
-
-# FAKE - F# Make
-.fake/
-
-# CodeRush personal settings
-.cr/personal
-
-# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
-
-# Cake - Uncomment if you are using it
-# tools/**
-# !tools/packages.config
-
-# Tabs Studio
-*.tss
-
-# Telerik's JustMock configuration file
-*.jmconfig
-
-# BizTalk build output
-*.btp.cs
-*.btm.cs
-*.odx.cs
-*.xsd.cs
-
-# OpenCover UI analysis results
-OpenCover/
-
-# Azure Stream Analytics local run output
-ASALocalRun/
-
-# MSBuild Binary and Structured Log
-*.binlog
-
-# NVidia Nsight GPU debugger configuration file
-*.nvuser
-
-# MFractors (Xamarin productivity tool) working folder
-.mfractor/
-
-# Local History for Visual Studio
-.localhistory/
-
-# Visual Studio History (VSHistory) files
-.vshistory/
-
-# BeatPulse healthcheck temp database
-healthchecksdb
-
-# Backup folder for Package Reference Convert tool in Visual Studio 2017
-MigrationBackup/
-
-# Ionide (cross platform F# VS Code tools) working folder
-.ionide/
-
-# Fody - auto-generated XML schema
-FodyWeavers.xsd
-
-# VS Code files for those working on multiple tools
-.vscode/*
-!.vscode/settings.json
-!.vscode/tasks.json
-!.vscode/launch.json
-!.vscode/extensions.json
-*.code-workspace
-
-# Local History for Visual Studio Code
-.history/
-
-# Windows Installer files from build outputs
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# JetBrains Rider
-*.sln.iml
-.vs
diff --git a/GameCode/AchievementManager.cs b/GameCode/AchievementManager.cs
deleted file mode 100644
index 0cedf23..0000000
--- a/GameCode/AchievementManager.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using System;
-using Steamworks;
-using UnityEngine;
-
-public class AchievementManager : MonoBehaviour
-{
- public enum Achievements
- {
- START_TUTORIAL,
- COMPLETE_TUTORIAL,
- NORDFELS_BEATEN,
- NORDFELS_QUESTSCOMPLETE,
- DURSTSTEIN_BEATEN,
- DURSTSTEIN_QUESTSCOMPLETE,
- FROSTSEE_BEATEN,
- FROSTSEE_QUESTSCOMPLETE,
- MAXLEVEL_REACHED
- }
-
- public static void UnlockAchievement(Achievements _achievement)
- {
- if (SteamManager.Initialized)
- {
- SteamUserStats.SetAchievement(_achievement.ToString());
- }
- }
-
- public static void ResetAllAchievements()
- {
- if (!Application.isPlaying)
- {
- Debug.LogWarning("Warning: Resetting achievements only works while in play mode.");
- return;
- }
- string[] names = Enum.GetNames(typeof(Achievements));
- for (int i = 0; i < names.Length; i++)
- {
- SteamUserStats.ClearAchievement(names[i]);
- }
- }
-
- public static void LevelBeaten(string _scene)
- {
- if (_scene == "Neuland(Tutorial)")
- {
- UnlockAchievement(Achievements.START_TUTORIAL);
- UnlockAchievement(Achievements.COMPLETE_TUTORIAL);
- }
- if (_scene == "Nordfels")
- {
- UnlockAchievement(Achievements.NORDFELS_BEATEN);
- }
- if (_scene == "Durststein")
- {
- UnlockAchievement(Achievements.DURSTSTEIN_BEATEN);
- }
- if (_scene == "Frostsee")
- {
- UnlockAchievement(Achievements.FROSTSEE_BEATEN);
- }
- }
-
- public static void LevelAllQuestsComplete(string _scene)
- {
- if (_scene == "Nordfels")
- {
- UnlockAchievement(Achievements.NORDFELS_QUESTSCOMPLETE);
- }
- if (_scene == "Durststein")
- {
- UnlockAchievement(Achievements.DURSTSTEIN_QUESTSCOMPLETE);
- }
- if (_scene == "Frostsee")
- {
- UnlockAchievement(Achievements.FROSTSEE_QUESTSCOMPLETE);
- }
- }
-}
diff --git a/GameCode/AfterMatchUIManager.cs b/GameCode/AfterMatchUIManager.cs
deleted file mode 100644
index 1310934..0000000
--- a/GameCode/AfterMatchUIManager.cs
+++ /dev/null
@@ -1,251 +0,0 @@
-using System.Collections;
-using Rewired;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class AfterMatchUIManager : MonoBehaviour
-{
- [Header("Score Screen")]
- [SerializeField]
- private GameObject scoreScreenUI;
-
- [SerializeField]
- private TMP_Text ingameHighscore;
-
- [SerializeField]
- private TMP_Text goldBonus;
-
- [SerializeField]
- private TMP_Text mutationBonus;
-
- [SerializeField]
- private TMP_Text totalScore;
-
- [SerializeField]
- private GameObject newPersonalBest;
-
- [Header("Graphs")]
- [SerializeField]
- private GameObject graphs;
-
- [SerializeField]
- private GraphDrawer graphDrawerA;
-
- [SerializeField]
- private GraphDrawer graphDrawerB;
-
- [Header("Leveling")]
- [SerializeField]
- private GameObject levelingProgressUI;
-
- [SerializeField]
- private TMP_Text currentLevelTxt1;
-
- [SerializeField]
- private RectTransform levelingBarBack;
-
- [SerializeField]
- private RectTransform levelingBarFront;
-
- [SerializeField]
- private TMP_Text xpDisplay;
-
- [SerializeField]
- private Image rewardPreview1;
-
- [Header("Rewards")]
- [SerializeField]
- private GameObject rewardDisplayUI;
-
- [SerializeField]
- private TMP_Text currentLevelTxt2;
-
- [SerializeField]
- private Image rewardPreview2;
-
- [SerializeField]
- private TMP_Text itemName;
-
- [SerializeField]
- private TMP_Text itemDescription;
-
- [Header("Max Level")]
- [SerializeField]
- private GameObject maxLevelReachedUI;
-
- [SerializeField]
- private GameObject demoLockedUI;
-
- [Header("Settings")]
- [SerializeField]
- private float timeToFillUpABar = 5f;
-
- [SerializeField]
- private float waitAtBeginning = 0.25f;
-
- [SerializeField]
- private float waitAfterFillingUpABar = 0.25f;
-
- [SerializeField]
- private float waitBeforeYouCanInteract = 0.25f;
-
- private PerkManager perkManager;
-
- private MetaLevel nextMetaLevel;
-
- private Player input;
-
- private void Start()
- {
- perkManager = PerkManager.instance;
- StartCoroutine(ShowRewards());
- input = ReInput.players.GetPlayer(0);
- }
-
- private IEnumerator ShowRewards()
- {
- EnableScoreUI();
- ingameHighscore.text = SceneTransitionManager.instance.IngameScoreFromLastMatch.ToString();
- goldBonus.text = "+" + SceneTransitionManager.instance.GoldBonusScoreFromLastMatch;
- mutationBonus.text = "+" + SceneTransitionManager.instance.MutatorBonusScoreFromLastMatch;
- totalScore.text = SceneTransitionManager.instance.TotalScoreFromLastMatch.ToString();
- newPersonalBest.SetActive(SceneTransitionManager.instance.TotalScoreFromLastMatchIsNewPersonalRecord);
- yield return new WaitForSeconds(waitAtBeginning);
- while (!input.GetButtonDown("Interact"))
- {
- yield return null;
- }
- int xpToGive = SceneTransitionManager.instance.TotalScoreFromLastMatch;
- yield return SelectNextMetaLevel();
- EnableLevelingProgressUI();
- currentLevelTxt1.text = "Level " + perkManager.level;
- rewardPreview1.sprite = nextMetaLevel.reward.icon;
- UpdateLevelingBar();
- yield return new WaitForSeconds(waitAtBeginning);
- float xPTrickleSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
- float xpTrickle = 0f;
- while (xpToGive > 0)
- {
- xpTrickle += xPTrickleSpeed * Time.deltaTime;
- int num = (int)xpTrickle;
- xpTrickle -= (float)num;
- xpToGive -= num;
- if (xpToGive < 0)
- {
- num -= xpToGive;
- }
- perkManager.xp += num;
- UpdateLevelingBar();
- if (perkManager.xp >= nextMetaLevel.requiredXp)
- {
- yield return new WaitForSeconds(waitAfterFillingUpABar);
- EnableRewardDisplayUI();
- currentLevelTxt2.text = "Level " + (1 + perkManager.level);
- rewardPreview2.sprite = nextMetaLevel.reward.icon;
- itemName.text = nextMetaLevel.reward.displayName;
- itemDescription.text = nextMetaLevel.reward.description;
- yield return new WaitForSeconds(waitBeforeYouCanInteract);
- while (!input.GetButtonDown("Interact"))
- {
- yield return null;
- }
- perkManager.xp -= nextMetaLevel.requiredXp;
- perkManager.UnlockedEquippables.Add(nextMetaLevel.reward);
- perkManager.level++;
- yield return SelectNextMetaLevel();
- xPTrickleSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
- currentLevelTxt1.text = "Level " + perkManager.level;
- rewardPreview1.sprite = nextMetaLevel.reward.icon;
- EnableLevelingProgressUI();
- }
- yield return null;
- }
- yield return null;
- while (!input.GetButtonDown("Interact"))
- {
- yield return null;
- }
- LevelProgressManager.instance.GetLevelDataForScene(SceneTransitionManager.instance.ComingFromGameplayScene).SaveScoreAndStatsToBestIfBest(_endOfMatch: true);
- SteamManager.Instance.UploadHighscore(SceneTransitionManager.instance.TotalScoreFromLastMatch, SceneTransitionManager.instance.ComingFromGameplayScene);
- SaveLoadManager.instance.SaveGame();
- SceneTransitionManager.instance.TransitionFromEndScreenToLevelSelect();
- }
-
- private IEnumerator SelectNextMetaLevel()
- {
- nextMetaLevel = perkManager.NextMetaLevel;
- if (nextMetaLevel == null)
- {
- EnableMaxLevelReachedUI();
- yield return new WaitForSeconds(waitBeforeYouCanInteract);
- while (!input.GetButtonDown("Interact"))
- {
- yield return null;
- }
- SceneTransitionManager.instance.TransitionFromEndScreenToLevelSelect();
- StopAllCoroutines();
- yield return null;
- }
- }
-
- private void DisableAllUI()
- {
- levelingProgressUI.SetActive(value: false);
- rewardDisplayUI.SetActive(value: false);
- maxLevelReachedUI.SetActive(value: false);
- graphs.SetActive(value: false);
- scoreScreenUI.SetActive(value: false);
- demoLockedUI.SetActive(value: false);
- }
-
- private void EnableLevelingProgressUI()
- {
- DisableAllUI();
- levelingProgressUI.SetActive(value: true);
- }
-
- private void EnableRewardDisplayUI()
- {
- DisableAllUI();
- rewardDisplayUI.SetActive(value: true);
- }
-
- private void EnableMaxLevelReachedUI()
- {
- DisableAllUI();
- maxLevelReachedUI.SetActive(value: true);
- }
-
- private void EnableDemoLockedUI()
- {
- DisableAllUI();
- demoLockedUI.SetActive(value: true);
- }
-
- private void EnableGraphsUI()
- {
- DisableAllUI();
- graphs.SetActive(value: false);
- }
-
- private void EnableScoreUI()
- {
- DisableAllUI();
- scoreScreenUI.SetActive(value: true);
- }
-
- private void UpdateLevelingBar()
- {
- xpDisplay.text = perkManager.xp + " / " + nextMetaLevel.requiredXp;
- SetLevelingParPercentage((float)perkManager.xp / (float)nextMetaLevel.requiredXp);
- }
-
- private void SetLevelingParPercentage(float _percentage)
- {
- float width = levelingBarBack.rect.width;
- float num = width * _percentage;
- levelingBarFront.localScale = new Vector3(_percentage, 1f, 1f);
- levelingBarFront.localPosition = new Vector3(num / 2f - width / 2f, 0f, 0f);
- }
-}
diff --git a/GameCode/AimbotProjectile.cs b/GameCode/AimbotProjectile.cs
deleted file mode 100644
index 546deeb..0000000
--- a/GameCode/AimbotProjectile.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-using UnityEngine;
-using UnityEngine.Events;
-
-public class AimbotProjectile : MonoBehaviour
-{
- private Weapon weapon;
-
- public bool shakeCameraOnDestroy;
-
- private Transform targetTransform;
-
- private Hp targetHp;
-
- private TaggedObject targetTaggedObject;
-
- private Vector3 rememberTarget;
-
- private Vector3 myLinearPosition;
-
- private Vector3 spawnPosition;
-
- private Vector3 previousPosition;
-
- private float finalDamageMultiplyer = 1f;
-
- private float remainingRange;
-
- private TaggedObject firedBy;
-
- private bool firedByPlayer;
-
- private bool targetIsFlying;
-
- [HideInInspector]
- public UnityEvent onHit = new UnityEvent();
-
- public Weapon Weapon
- {
- get
- {
- return weapon;
- }
- set
- {
- weapon = value;
- }
- }
-
- public void Fire(Weapon _weapon, Hp _target, float _chaseRange, Vector3 _backupTarget, TaggedObject _firedBy, float _finalDamageMultiplyer = 1f)
- {
- firedBy = _firedBy;
- if ((bool)firedBy)
- {
- firedByPlayer = _firedBy.Tags.Contains(TagManager.ETag.Player);
- }
- weapon = _weapon;
- if ((bool)_target)
- {
- targetTransform = _target.transform;
- targetHp = _target;
- targetTaggedObject = _target.GetComponent<TaggedObject>();
- if (targetTaggedObject.Tags.Contains(TagManager.ETag.Flying))
- {
- targetIsFlying = true;
- }
- }
- else
- {
- rememberTarget = _backupTarget;
- }
- myLinearPosition = base.transform.position;
- spawnPosition = base.transform.position;
- previousPosition = base.transform.position;
- remainingRange = _chaseRange;
- finalDamageMultiplyer = _finalDamageMultiplyer;
- Update();
- }
-
- private void Update()
- {
- if ((bool)targetTransform)
- {
- if (targetTaggedObject.colliderForBigOjectsToMeasureDistance != null)
- {
- rememberTarget = targetTaggedObject.colliderForBigOjectsToMeasureDistance.ClosestPoint(spawnPosition);
- }
- else
- {
- rememberTarget = targetTransform.position + targetHp.hitFeedbackHeight * Vector3.up;
- }
- }
- Vector3 vector = rememberTarget - myLinearPosition;
- float num = weapon.projectileSpeed * Time.deltaTime;
- if (num >= vector.magnitude)
- {
- Vector3 position = base.transform.position;
- base.transform.position = rememberTarget;
- if (targetTaggedObject != null && targetHp != null && targetTransform != null)
- {
- weapon.DealDamage(targetHp, finalDamageMultiplyer, firedBy);
- }
- else if (weapon.performRaycastWhenHittingEmptyPosition)
- {
- float raycastLength = weapon.raycastLength;
- Vector3 normalized = (base.transform.position - position).normalized;
- Physics.Raycast(base.transform.position - normalized * raycastLength, normalized, out var hitInfo, raycastLength, weapon.emptyPositionRaycastLayerMask);
- if ((bool)hitInfo.collider)
- {
- Hp componentInParent = hitInfo.collider.GetComponentInParent<Hp>();
- if ((bool)componentInParent)
- {
- weapon.DealDamage(componentInParent, finalDamageMultiplyer, firedBy);
- }
- }
- }
- if (!targetIsFlying && (bool)weapon.spawnOnGroundWhenTargetingGround)
- {
- if (targetTransform != null)
- {
- Object.Instantiate(weapon.spawnOnGroundWhenTargetingGround, targetTransform.position, Quaternion.identity);
- }
- else
- {
- Object.Instantiate(weapon.spawnOnGroundWhenTargetingGround, base.transform.position, Quaternion.identity);
- }
- }
- onHit.Invoke();
- Object.Destroy(base.gameObject);
- }
- else
- {
- myLinearPosition += vector.normalized * num;
- }
- float magnitude = (rememberTarget - spawnPosition).magnitude;
- float num4;
- if (magnitude > 0.001f)
- {
- float num2 = (myLinearPosition - spawnPosition).magnitude / magnitude;
- float num3 = Mathf.Max(0f, (magnitude + weapon.projectileParabulaOffset) * weapon.projectileParabulaFactor);
- num4 = (0f - Mathf.Pow(2f * num2 - 1f, 2f) + 1f) * num3;
- }
- else
- {
- num4 = 0f;
- }
- base.transform.position = myLinearPosition + Vector3.up * num4;
- if (weapon.projectileFacingDirection == Weapon.EFacingDirection.FaceVictim && base.transform.position != previousPosition)
- {
- base.transform.rotation = Quaternion.LookRotation(base.transform.position - previousPosition, Vector3.up);
- }
- previousPosition = base.transform.position;
- remainingRange -= num;
- if (remainingRange <= 0f)
- {
- targetTransform = null;
- }
- }
-
- private void OnDestroy()
- {
- if (shakeCameraOnDestroy && (bool)CameraController.instance)
- {
- CameraController.instance.ShakePunch();
- }
- }
-}
diff --git a/GameCode/AnimateSizeAndDestroy.cs b/GameCode/AnimateSizeAndDestroy.cs
deleted file mode 100644
index 7ec5b1a..0000000
--- a/GameCode/AnimateSizeAndDestroy.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class AnimateSizeAndDestroy : MonoBehaviour
-{
- public AnimationCurve animationCurve;
-
- public float duration = 1f;
-
- private Vector3 initialScale;
-
- private void Start()
- {
- initialScale = base.transform.localScale;
- StartCoroutine(AnimateScale());
- }
-
- private IEnumerator AnimateScale()
- {
- float time = 0f;
- while (time <= duration)
- {
- float num = animationCurve.Evaluate(time / duration);
- base.transform.localScale = initialScale * num;
- time += Time.deltaTime;
- yield return null;
- }
- Object.Destroy(base.gameObject);
- }
-}
diff --git a/GameCode/ApplyUpgradeIndicatorColor.cs b/GameCode/ApplyUpgradeIndicatorColor.cs
deleted file mode 100644
index 065accb..0000000
--- a/GameCode/ApplyUpgradeIndicatorColor.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Shapes;
-using UnityEngine;
-
-[RequireComponent(typeof(Rectangle))]
-public class ApplyUpgradeIndicatorColor : MonoBehaviour
-{
- private void Start()
- {
- Rectangle component = GetComponent<Rectangle>();
- if ((bool)ColorAndLightManager.currentColorscheme)
- {
- component.Color = ColorAndLightManager.currentColorscheme.upgradeInteractorColor;
- }
- }
-}
diff --git a/GameCode/AttackCooldownAnimation.cs b/GameCode/AttackCooldownAnimation.cs
deleted file mode 100644
index d4f65c5..0000000
--- a/GameCode/AttackCooldownAnimation.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using MoreMountains.Feedbacks;
-using MPUIKIT;
-using UnityEngine;
-
-public class AttackCooldownAnimation : MonoBehaviour
-{
- public GameObject parent;
-
- public MPImage cooldownIndicator;
-
- public MMF_Player onShow;
-
- public MMF_Player onHide;
-
- private float currentCooldownPercentage;
-
- private bool inCooldown;
-
- private void Start()
- {
- parent.SetActive(value: false);
- }
-
- public void SetCurrentCooldownPercentage(float value)
- {
- currentCooldownPercentage = value;
- if (inCooldown && currentCooldownPercentage <= 0f)
- {
- onShow.StopFeedbacks();
- onHide.StopFeedbacks();
- onHide.PlayFeedbacks();
- inCooldown = false;
- }
- if (!inCooldown && currentCooldownPercentage > 0f)
- {
- onShow.StopFeedbacks();
- onHide.StopFeedbacks();
- onShow.PlayFeedbacks();
- inCooldown = true;
- }
- }
-
- private void Update()
- {
- if (currentCooldownPercentage > 0f)
- {
- cooldownIndicator.fillAmount = 1f - currentCooldownPercentage;
- }
- }
-}
diff --git a/GameCode/AudioDayNightFader.cs b/GameCode/AudioDayNightFader.cs
deleted file mode 100644
index 7734d83..0000000
--- a/GameCode/AudioDayNightFader.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using System.Collections;
-using UnityEngine;
-using UnityEngine.Audio;
-
-public class AudioDayNightFader : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public float fadeTime = 0.5f;
-
- public AudioMixer mixer;
-
- public AudioClip nightMusic;
-
- public AudioClip finalNightMusic;
-
- public float nightMusicFadeInTime = 3f;
-
- public float nightMusicFadeOutTime = 4f;
-
- private float transitionClock;
-
- private float dayTargetVol;
-
- private float nightTargetVol;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- mixer.GetFloat("DayEnvVolume", out dayTargetVol);
- mixer.GetFloat("NightEnvVolume", out nightTargetVol);
- dayTargetVol = Mathf.Pow(10f, dayTargetVol / 20f);
- nightTargetVol = Mathf.Pow(10f, nightTargetVol / 20f);
- mixer.SetFloat("NightEnvVolume", Mathf.Log10(0.0001f) * 20f);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- StopAllCoroutines();
- StartCoroutine(FadeToDay());
- }
-
- public void OnDusk()
- {
- StopAllCoroutines();
- StartCoroutine(FadeToNight());
- }
-
- private IEnumerator FadeToNight()
- {
- if (EnemySpawner.instance.Wavenumber >= EnemySpawner.instance.waves.Count - 1)
- {
- MusicManager.instance.PlayMusic(finalNightMusic, nightMusicFadeInTime);
- }
- else
- {
- MusicManager.instance.PlayMusic(nightMusic, nightMusicFadeInTime);
- }
- while (transitionClock < 1f)
- {
- transitionClock += Time.deltaTime / fadeTime;
- mixer.SetFloat("DayEnvVolume", Mathf.Log10(Mathf.Lerp(dayTargetVol, 0.0001f, transitionClock)) * 20f);
- mixer.SetFloat("NightEnvVolume", Mathf.Log10(Mathf.Lerp(0.0001f, nightTargetVol, transitionClock)) * 20f);
- yield return null;
- }
- transitionClock = 1f;
- mixer.SetFloat("DayEnvVolume", Mathf.Log10(0.0001f) * 20f);
- mixer.SetFloat("NightEnvVolume", Mathf.Log10(nightTargetVol) * 20f);
- }
-
- private IEnumerator FadeToDay()
- {
- MusicManager.instance.PlayMusic(null, nightMusicFadeOutTime);
- while (transitionClock > 0f)
- {
- transitionClock -= Time.deltaTime / fadeTime;
- mixer.SetFloat("DayEnvVolume", Mathf.Log10(Mathf.Lerp(dayTargetVol, 0.0001f, transitionClock)) * 20f);
- mixer.SetFloat("NightEnvVolume", Mathf.Log10(Mathf.Lerp(0.0001f, nightTargetVol, transitionClock)) * 20f);
- yield return null;
- }
- transitionClock = 0f;
- mixer.SetFloat("DayEnvVolume", Mathf.Log10(dayTargetVol) * 20f);
- mixer.SetFloat("NightEnvVolume", Mathf.Log10(0.0001f) * 20f);
- }
-}
diff --git a/GameCode/AudioSet.cs b/GameCode/AudioSet.cs
deleted file mode 100644
index 99e201d..0000000
--- a/GameCode/AudioSet.cs
+++ /dev/null
@@ -1,403 +0,0 @@
-using System;
-using UnityEngine;
-using UnityEngine.Audio;
-
-[CreateAssetMenu(fileName = "New Audio Set", menuName = "SimpleSiege/Audio Set")]
-public class AudioSet : ScriptableObject
-{
- [Serializable]
- public class ClipArray
- {
- public AudioClip[] clips;
-
- public AudioClip GetRandomClip()
- {
- return clips[UnityEngine.Random.Range(0, clips.Length)];
- }
- }
-
- [Header("MIXER GROUPS")]
- public AudioMixerGroup mixGroupFX;
-
- [Header("DAY/NIGHT")]
- [SerializeField]
- private AudioClip nightSurvived;
-
- [SerializeField]
- private AudioClip buildingRepair;
-
- [Header("BUILDING")]
- [SerializeField]
- private AudioClip coinslotFill;
-
- [SerializeField]
- private AudioClip lastCoinslotFill;
-
- [SerializeField]
- private AudioClip coinslotInteractionStart;
-
- [SerializeField]
- private AudioClip payBackground;
-
- [SerializeField]
- private AudioClip buildingBuild;
-
- [SerializeField]
- private AudioClip buildingUpgrade;
-
- [SerializeField]
- private ClipArray towerShot;
-
- [SerializeField]
- private ClipArray ballistaShot;
-
- [SerializeField]
- private AudioClip enemySpawn;
-
- [SerializeField]
- private ClipArray defaultOnFootStep;
-
- [SerializeField]
- private ClipArray giantStep;
-
- [SerializeField]
- private ClipArray flyingSmall;
-
- [SerializeField]
- private ClipArray siegeRoll;
-
- [SerializeField]
- private ClipArray racerRoll;
-
- [SerializeField]
- private ClipArray squishyBounce;
-
- [SerializeField]
- private ClipArray exploderRoll;
-
- [SerializeField]
- private ClipArray monsterRiderGallop;
-
- [SerializeField]
- private ClipArray slimeStep;
-
- [SerializeField]
- private ClipArray defaultSwordAttack;
-
- [SerializeField]
- private ClipArray massiveBluntAttack;
-
- [SerializeField]
- private ClipArray flyerSpit;
-
- [SerializeField]
- private ClipArray flatbowShot;
-
- [SerializeField]
- private ClipArray crossbowShow;
-
- [SerializeField]
- private ClipArray catapultShot;
-
- [SerializeField]
- private ClipArray ram;
-
- [SerializeField]
- private ClipArray racerBite;
-
- [SerializeField]
- private ClipArray hunterlingBite;
-
- [SerializeField]
- private ClipArray slimeSpit;
-
- [SerializeField]
- private ClipArray defaultHumanoidOnFootDamage;
-
- [SerializeField]
- private ClipArray bigOrganicDamage;
-
- [SerializeField]
- private ClipArray smallOrganicDamage;
-
- [SerializeField]
- private ClipArray siegeDamage;
-
- [SerializeField]
- private ClipArray defaultHumanoidOnFootDeath;
-
- [SerializeField]
- private ClipArray bigOrganicDeath;
-
- [SerializeField]
- private ClipArray siegeDeath;
-
- [SerializeField]
- private ClipArray exploderDeath;
-
- [SerializeField]
- private ClipArray eismolochAppear;
-
- [SerializeField]
- private ClipArray eismolochSpawnUnits;
-
- [SerializeField]
- private ClipArray eismolochScream;
-
- [SerializeField]
- private ClipArray playerSword;
-
- [SerializeField]
- private ClipArray playerSwordBigHit;
-
- [SerializeField]
- private ClipArray playerBow;
-
- [SerializeField]
- private ClipArray playerBowStab;
-
- [SerializeField]
- private ClipArray playerBowStabMiss;
-
- [SerializeField]
- private ClipArray playerCantUseActiveAbility;
-
- [SerializeField]
- private ClipArray activeAbilityCooldownReadyToUse;
-
- [SerializeField]
- private ClipArray playerSpear;
-
- [SerializeField]
- private ClipArray playerDeath;
-
- [SerializeField]
- private ClipArray playerDamage;
-
- [SerializeField]
- private AudioClip playerRevive;
-
- [SerializeField]
- private ClipArray addedUnitToCommanding;
-
- [SerializeField]
- private ClipArray placeCommandingUnits;
-
- [SerializeField]
- private ClipArray holdPosition;
-
- [SerializeField]
- private ClipArray catapultImpact;
-
- [SerializeField]
- private ClipArray buttonSelect;
-
- [SerializeField]
- private ClipArray buttonApply;
-
- [SerializeField]
- private ClipArray buttonApplyHero;
-
- [SerializeField]
- private ClipArray coinCollect;
-
- [SerializeField]
- private AudioClip nightCallStart;
-
- [SerializeField]
- private AudioClip nightCallComplete;
-
- [SerializeField]
- private AudioClip victory;
-
- [SerializeField]
- private AudioClip defeat;
-
- [SerializeField]
- private AudioClip pointLockInMinor;
-
- [SerializeField]
- private AudioClip pointLockInMajor;
-
- [SerializeField]
- private AudioClip pointScreenBuildA;
-
- [SerializeField]
- private AudioClip pointScreenBuildB;
-
- [SerializeField]
- private AudioClip pointScreenBuildC;
-
- [SerializeField]
- private AudioClip pointFillStart;
-
- [SerializeField]
- private AudioClip pointFill;
-
- [SerializeField]
- private AudioClip newHighscore;
-
- [SerializeField]
- private AudioClip levelUp;
-
- [SerializeField]
- private AudioClip showWaveCount;
-
- [SerializeField]
- private AudioClip closeWaveCount;
-
- [SerializeField]
- private AudioClip showTooltip;
-
- public AudioClip NightSurvived => nightSurvived;
-
- public AudioClip BuildingRepair => buildingRepair;
-
- public AudioClip CoinslotFill => coinslotFill;
-
- public AudioClip LastCoinslotFill => lastCoinslotFill;
-
- public AudioClip CoinslotInteractionStart => coinslotInteractionStart;
-
- public AudioClip PayBackground => payBackground;
-
- public AudioClip BuildingBuild => buildingBuild;
-
- public AudioClip BuildingUpgrade => buildingUpgrade;
-
- public ClipArray TowerShot => towerShot;
-
- public ClipArray BallistaShot => ballistaShot;
-
- public AudioClip EnemySpawn => enemySpawn;
-
- public ClipArray DefaultOnFootStep => defaultOnFootStep;
-
- public ClipArray GiantStep => giantStep;
-
- public ClipArray FlyingSmall => flyingSmall;
-
- public ClipArray SiegeRoll => siegeRoll;
-
- public ClipArray RacerRoll => racerRoll;
-
- public ClipArray SquishyBounce => squishyBounce;
-
- public ClipArray ExploderRoll => exploderRoll;
-
- public ClipArray MonsterRiderGallop => monsterRiderGallop;
-
- public ClipArray SlimeStep => slimeStep;
-
- public ClipArray DefaultSwordAttack => defaultSwordAttack;
-
- public ClipArray MassiveBluntAttack => massiveBluntAttack;
-
- public ClipArray FlyerSpit => flyerSpit;
-
- public ClipArray FlatbowShot => flatbowShot;
-
- public ClipArray CrossbowShot => crossbowShow;
-
- public ClipArray CatapultShot => catapultShot;
-
- public ClipArray Ram => ram;
-
- public ClipArray RacerBite => racerBite;
-
- public ClipArray HunterlingBite => hunterlingBite;
-
- public ClipArray SlimeSpit => slimeSpit;
-
- public ClipArray DefaultHumanoidOnFootDamage => defaultHumanoidOnFootDamage;
-
- public ClipArray BigOrganicDamage => bigOrganicDamage;
-
- public ClipArray SmallOrganicDamage => smallOrganicDamage;
-
- public ClipArray SiegeDamage => siegeDamage;
-
- public ClipArray DefaultHumanoidOnFootDeath => defaultHumanoidOnFootDeath;
-
- public ClipArray BigOrganicDeath => bigOrganicDeath;
-
- public ClipArray SiegeDeath => siegeDeath;
-
- public ClipArray ExploderDeath => exploderDeath;
-
- public ClipArray EismolochAppear => eismolochAppear;
-
- public ClipArray EismolochSpawnUnits => eismolochSpawnUnits;
-
- public ClipArray EismolochScream => eismolochScream;
-
- public ClipArray PlayerSword => playerSword;
-
- public ClipArray PlayerSwordBigHit => playerSwordBigHit;
-
- public ClipArray PlayerBow => playerBow;
-
- public ClipArray PlayerBowStab => playerBowStab;
-
- public ClipArray PlayerBowStabMiss => playerBowStabMiss;
-
- public ClipArray PlayerCantUseActiveAbility => playerCantUseActiveAbility;
-
- public ClipArray ActiveAbilityCooldownReadyToUse => activeAbilityCooldownReadyToUse;
-
- public ClipArray PlayerSpear => playerSpear;
-
- public ClipArray PlayerDeath => playerDeath;
-
- public ClipArray PlayerDamage => playerDamage;
-
- public AudioClip PlayerRevive => playerRevive;
-
- public ClipArray AddedUnitToCommanding => addedUnitToCommanding;
-
- public ClipArray PlaceCommandingUnits => placeCommandingUnits;
-
- public ClipArray HoldPosition => holdPosition;
-
- public ClipArray CatapultImpact => catapultImpact;
-
- public ClipArray ButtonSelect => buttonSelect;
-
- public ClipArray ButtonApply => buttonApply;
-
- public ClipArray ButtonApplyHero => buttonApplyHero;
-
- public ClipArray CoinCollect => coinCollect;
-
- public AudioClip NightCallStart => nightCallStart;
-
- public AudioClip NightCallComplete => nightCallComplete;
-
- public AudioClip Victory => victory;
-
- public AudioClip Defeat => defeat;
-
- public AudioClip PointLockInMinor => pointLockInMinor;
-
- public AudioClip PointLockInMajor => pointLockInMajor;
-
- public AudioClip PointScreenBuildA => pointScreenBuildA;
-
- public AudioClip PointScreenBuildB => pointScreenBuildB;
-
- public AudioClip PointScreenBuildC => pointScreenBuildC;
-
- public AudioClip PointFillStart => pointFillStart;
-
- public AudioClip PointFill => pointFill;
-
- public AudioClip NewHighscore => newHighscore;
-
- public AudioClip LevelUp => levelUp;
-
- public AudioClip ShowWaveCount => showWaveCount;
-
- public AudioClip CloseWaveCount => closeWaveCount;
-
- public AudioClip ShowTooltip => showTooltip;
-}
diff --git a/GameCode/AutoAttack.cs b/GameCode/AutoAttack.cs
deleted file mode 100644
index 71d1aec..0000000
--- a/GameCode/AutoAttack.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class AutoAttack : MonoBehaviour
-{
- public float cooldownDuration = 1f;
-
- public float cooldownAfterSpawn = -1f;
-
- [Range(0f, 1f)]
- public float cooldownRandomization;
-
- [Tooltip("How often this script checks if an attack is possible once the cooldown is down")]
- public float recheckTargetInterval = 0.5f;
-
- public List<TargetPriority> targetPriorities = new List<TargetPriority>();
-
- public Weapon weapon;
-
- public float spawnAttackHeight = 0.5f;
-
- private TaggedObject taggedObject;
-
- private float cooldown = -1f;
-
- private bool onCooldown;
-
- [Tooltip("While the getDisabledBy auto attack script is on cooldown, this auto attack script here can't attack.")]
- public AutoAttack getsDisaledBy;
-
- private float damageMultiplyer = 1f;
-
- [HideInInspector]
- public UnityEvent onAttackTriggered = new UnityEvent();
-
- private Vector3 lastTargetPosition;
-
- public float DamageMultiplyer
- {
- get
- {
- return damageMultiplyer;
- }
- set
- {
- damageMultiplyer = value;
- }
- }
-
- public Vector3 LastTargetPosition => lastTargetPosition;
-
- public void ReduceCooldownBy(float _reduceBy)
- {
- cooldown -= _reduceBy;
- }
-
- private void Start()
- {
- cooldown = cooldownAfterSpawn;
- taggedObject = GetComponent<TaggedObject>();
- }
-
- private void Update()
- {
- bool flag = true;
- if (getsDisaledBy != null && getsDisaledBy.onCooldown)
- {
- flag = false;
- cooldown += Time.deltaTime;
- }
- cooldown -= Time.deltaTime;
- if (cooldown <= 0f && flag)
- {
- TaggedObject taggedObject = FindAutoAttackTarget();
- if (taggedObject == null)
- {
- cooldown += recheckTargetInterval;
- onCooldown = false;
- return;
- }
- cooldown += cooldownDuration * (1f + (1f - 2f * Random.value) * cooldownRandomization);
- weapon.Attack(base.transform.position + spawnAttackHeight * Vector3.up, taggedObject.Hp, Vector3.zero, this.taggedObject, damageMultiplyer);
- lastTargetPosition = taggedObject.transform.position;
- onAttackTriggered.Invoke();
- onCooldown = true;
- }
- }
-
- public virtual TaggedObject FindAutoAttackTarget()
- {
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- TaggedObject taggedObject = targetPriorities[i].FindClosestTaggedObject(base.transform.position);
- if (taggedObject != null)
- {
- return taggedObject;
- }
- }
- return null;
- }
-}
diff --git a/GameCode/AutoAttackHighestHealth.cs b/GameCode/AutoAttackHighestHealth.cs
deleted file mode 100644
index f489337..0000000
--- a/GameCode/AutoAttackHighestHealth.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-public class AutoAttackHighestHealth : AutoAttack
-{
- public override TaggedObject FindAutoAttackTarget()
- {
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- TaggedObject taggedObject = targetPriorities[i].FindHighestHealthObjectInRange(base.transform.position);
- if (taggedObject != null)
- {
- return taggedObject;
- }
- }
- return null;
- }
-}
diff --git a/GameCode/AutoAttackLowestHealth.cs b/GameCode/AutoAttackLowestHealth.cs
deleted file mode 100644
index 4db887b..0000000
--- a/GameCode/AutoAttackLowestHealth.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-public class AutoAttackLowestHealth : AutoAttack
-{
- public bool excludeFullHealthTargets = true;
-
- public override TaggedObject FindAutoAttackTarget()
- {
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- TaggedObject taggedObject = targetPriorities[i].FindLowestHealthObjectInRange(base.transform.position, excludeFullHealthTargets);
- if (taggedObject != null)
- {
- return taggedObject;
- }
- }
- return null;
- }
-}
diff --git a/GameCode/AutoRevive.cs b/GameCode/AutoRevive.cs
deleted file mode 100644
index 63c2d75..0000000
--- a/GameCode/AutoRevive.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using UnityEngine;
-using UnityEngine.Events;
-
-[RequireComponent(typeof(Hp))]
-public class AutoRevive : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [HideInInspector]
- public UnityEvent onReviveTrigger = new UnityEvent();
-
- private Hp hp;
-
- public float reviveAfterBeingKnockedOutFor = 20f;
-
- private float hasBeenKnockedOutFor;
-
- private bool ringOfResurection;
-
- private bool quickReviveAvailable = true;
-
- private bool godOfDeathActive;
-
- [SerializeField]
- private Equippable ringOfResurectionPerk;
-
- private float ReviveAfterBeingKnockedOutFor
- {
- get
- {
- if (ringOfResurection && quickReviveAvailable)
- {
- return 2f;
- }
- return reviveAfterBeingKnockedOutFor;
- }
- }
-
- public float TimeTillRevive
- {
- get
- {
- if (hasBeenKnockedOutFor <= 0f)
- {
- return -1f;
- }
- return ReviveAfterBeingKnockedOutFor - hasBeenKnockedOutFor;
- }
- }
-
- public void OnDusk()
- {
- }
-
- public void OnDawn_AfterSunrise()
- {
- quickReviveAvailable = true;
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- private void Start()
- {
- godOfDeathActive = PerkManager.instance.GodOfDeathActive;
- if (godOfDeathActive)
- {
- reviveAfterBeingKnockedOutFor *= PerkManager.instance.godOfDeath_playerRespawnMultiplyer;
- }
- hp = GetComponent<Hp>();
- ringOfResurection = PerkManager.IsEquipped(ringOfResurectionPerk);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- private void Update()
- {
- if (hp.KnockedOut)
- {
- hasBeenKnockedOutFor += Time.deltaTime;
- if (hasBeenKnockedOutFor >= ReviveAfterBeingKnockedOutFor)
- {
- hp.Revive();
- onReviveTrigger.Invoke();
- quickReviveAvailable = false;
- }
- }
- else
- {
- hasBeenKnockedOutFor = 0f;
- }
- }
-}
diff --git a/GameCode/BackToTitlescreenUIHelper.cs b/GameCode/BackToTitlescreenUIHelper.cs
deleted file mode 100644
index da76893..0000000
--- a/GameCode/BackToTitlescreenUIHelper.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-
-public class BackToTitlescreenUIHelper : MonoBehaviour
-{
- public void TransitionToMainMenu()
- {
- SceneTransitionManager.instance.TransitionToMainMenu();
- }
-}
diff --git a/GameCode/BackupAudioListener.cs b/GameCode/BackupAudioListener.cs
deleted file mode 100644
index 276c372..0000000
--- a/GameCode/BackupAudioListener.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-
-public class BackupAudioListener : MonoBehaviour
-{
- public static BackupAudioListener Instance { get; private set; }
-
- private void Awake()
- {
- if (Instance == null)
- {
- Instance = this;
- Object.DontDestroyOnLoad(base.gameObject);
- }
- else
- {
- Object.Destroy(base.gameObject);
- }
- }
-
- public void EnableBackupListener(bool enable)
- {
- GetComponent<AudioListener>().enabled = enable;
- }
-}
diff --git a/GameCode/BakeTrail.cs b/GameCode/BakeTrail.cs
deleted file mode 100644
index d06fd55..0000000
--- a/GameCode/BakeTrail.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using Ara;
-using UnityEngine;
-
-[RequireComponent(typeof(AraTrail))]
-public class BakeTrail : MonoBehaviour
-{
- private AraTrail trail;
-
- private void Awake()
- {
- trail = GetComponent<AraTrail>();
- }
-
- private void Update()
- {
- if (Input.GetKeyDown(KeyCode.Space))
- {
- Bake();
- }
- }
-
- private void Bake()
- {
- MeshFilter meshFilter = base.gameObject.AddComponent<MeshFilter>();
- MeshRenderer meshRenderer = base.gameObject.AddComponent<MeshRenderer>();
- if (meshFilter != null && meshRenderer != null)
- {
- meshFilter.mesh = Object.Instantiate(trail.mesh);
- meshRenderer.materials = trail.materials;
- Object.Destroy(this);
- Object.Destroy(trail);
- }
- else
- {
- Debug.LogError("[BakeTrail]: Could not bake the trail because the object already had a MeshRenderer.");
- }
- }
-}
diff --git a/GameCode/BarricadeDamage.cs b/GameCode/BarricadeDamage.cs
deleted file mode 100644
index 09842f3..0000000
--- a/GameCode/BarricadeDamage.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class BarricadeDamage : MonoBehaviour
-{
- public float preSelectRadius = 4f;
-
- public float slowTime = 3f;
-
- public List<DamageModifyer> damage;
-
- public LayerMask lmTakeDamage;
-
- private Collider[] overlapColliders = new Collider[50];
-
- private float timeSinceLastCollisionCheck;
-
- private BoxCollider myCollider;
-
- private void Start()
- {
- myCollider = GetComponent<BoxCollider>();
- timeSinceLastCollisionCheck = Random.value;
- }
-
- private void Update()
- {
- timeSinceLastCollisionCheck += Time.deltaTime;
- if (timeSinceLastCollisionCheck < 0.2f)
- {
- return;
- }
- timeSinceLastCollisionCheck = 0f;
- foreach (TaggedObject enemyUnit in TagManager.instance.EnemyUnits)
- {
- if (!(Vector3.Distance(base.transform.position, enemyUnit.transform.position) <= preSelectRadius) || enemyUnit.Hp.PathfindMovement.IsSlowed)
- {
- continue;
- }
- overlapColliders = Physics.OverlapBox(base.transform.position, myCollider.size, base.transform.rotation, lmTakeDamage);
- Collider[] array = overlapColliders;
- for (int i = 0; i < array.Length; i++)
- {
- TaggedObject componentInParent = array[i].GetComponentInParent<TaggedObject>();
- if (!componentInParent || !componentInParent.Tags.Contains(TagManager.ETag.EnemyOwned))
- {
- continue;
- }
- Hp hp = componentInParent.Hp;
- if ((bool)hp)
- {
- PathfindMovement pathfindMovement = hp.PathfindMovement;
- if ((bool)pathfindMovement && !pathfindMovement.IsSlowed)
- {
- pathfindMovement.Slow(slowTime);
- hp.TakeDamage(DamageModifyer.CalculateDamageOnTarget(componentInParent, damage));
- }
- }
- }
- break;
- }
- }
-}
diff --git a/GameCode/BeforeGamePopUp.cs b/GameCode/BeforeGamePopUp.cs
deleted file mode 100644
index 2850f57..0000000
--- a/GameCode/BeforeGamePopUp.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-[Serializable]
-public class BeforeGamePopUp
-{
- public UIFrame uiFrame;
-
- public bool showInDemoVersion = true;
-
- public bool showInFullVersion = true;
-}
diff --git a/GameCode/BillboardAlign.cs b/GameCode/BillboardAlign.cs
deleted file mode 100644
index 480eb82..0000000
--- a/GameCode/BillboardAlign.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-
-public class BillboardAlign : MonoBehaviour
-{
- public bool negativeZ = true;
-
- private void Start()
- {
- if (negativeZ)
- {
- base.transform.forward = Camera.main.transform.forward;
- }
- else
- {
- base.transform.forward = Camera.main.transform.forward * -1f;
- }
- }
-}
diff --git a/GameCode/BlacksmithUpgrade.cs b/GameCode/BlacksmithUpgrade.cs
deleted file mode 100644
index 9022dc2..0000000
--- a/GameCode/BlacksmithUpgrade.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-using UnityEngine;
-
-public class BlacksmithUpgrade : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [SerializeField]
- private BuildingInteractor buildingInteractor;
-
- [SerializeField]
- private ProductionBar productionBar;
-
- [SerializeField]
- private Weapon.EDamageAffectedByBlacksmithUpgrade upgrade;
-
- [SerializeField]
- private float multiplyer = 1.2f;
-
- [SerializeField]
- private int researchTime = 2;
-
- [SerializeField]
- private Equippable researchSpeedPerk;
-
- private int researchTimeLeft;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- if (!base.gameObject.activeInHierarchy)
- {
- return;
- }
- researchTimeLeft--;
- Debug.Log(researchTimeLeft);
- UpdateProgressBar();
- if (researchTimeLeft <= 0)
- {
- productionBar.gameObject.SetActive(value: false);
- switch (upgrade)
- {
- case Weapon.EDamageAffectedByBlacksmithUpgrade.MultiplyBy_MeleeDamage:
- BlacksmithUpgrades.instance.meleeDamage *= multiplyer;
- break;
- case Weapon.EDamageAffectedByBlacksmithUpgrade.MultiplyBy_RangedDamage:
- BlacksmithUpgrades.instance.rangedDamage *= multiplyer;
- break;
- case Weapon.EDamageAffectedByBlacksmithUpgrade.DivideBy_MeleeResistance:
- BlacksmithUpgrades.instance.meleeResistance *= multiplyer;
- break;
- case Weapon.EDamageAffectedByBlacksmithUpgrade.DivideBy_RangedResistance:
- BlacksmithUpgrades.instance.rangedResistance *= multiplyer;
- break;
- }
- buildingInteractor.buildingIsCurrentlyBusyAndCantBeUpgraded = false;
- buildingInteractor.UpdateInteractionState();
- DayNightCycle.Instance.UnregisterDaytimeSensitiveObject(this);
- }
- }
-
- public void OnDusk()
- {
- }
-
- private void OnEnable()
- {
- researchTimeLeft = researchTime;
- if (PerkManager.IsEquipped(researchSpeedPerk))
- {
- researchTimeLeft--;
- }
- UpdateProgressBar();
- buildingInteractor.buildingIsCurrentlyBusyAndCantBeUpgraded = true;
- buildingInteractor.UpdateInteractionState();
- }
-
- private void UpdateProgressBar()
- {
- productionBar.gameObject.SetActive(value: true);
- productionBar.UpdateVisual(1f - (float)researchTimeLeft / ((float)researchTime + 0.1f));
- }
-}
diff --git a/GameCode/BlacksmithUpgrades.cs b/GameCode/BlacksmithUpgrades.cs
deleted file mode 100644
index e9b0f6a..0000000
--- a/GameCode/BlacksmithUpgrades.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using UnityEngine;
-
-public class BlacksmithUpgrades : MonoBehaviour
-{
- public static BlacksmithUpgrades instance;
-
- public float meleeDamage = 1f;
-
- public float rangedDamage = 1f;
-
- public float meleeResistance = 1f;
-
- public float rangedResistance = 1f;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- if (PerkManager.instance.MeleeResistenceActive)
- {
- meleeResistance *= PerkManager.instance.meleeResistence_AmountMulti;
- }
- if (PerkManager.instance.RangedResistenceActive)
- {
- rangedResistance *= PerkManager.instance.rangedResistence_AmountMulti;
- }
- }
-
- private void Update()
- {
- }
-}
diff --git a/GameCode/BoatAnimation.cs b/GameCode/BoatAnimation.cs
deleted file mode 100644
index d038afa..0000000
--- a/GameCode/BoatAnimation.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using UnityEngine;
-
-public class BoatAnimation : MonoBehaviour
-{
- private Vector3 startPosition;
-
- private Quaternion startRotation;
-
- private float time;
-
- [SerializeField]
- private AnimationCurve yOffset;
-
- [SerializeField]
- private AnimationCurve xRotation;
-
- [SerializeField]
- private AnimationCurve yRotation;
-
- [SerializeField]
- private AnimationCurve zRotation;
-
- private void Start()
- {
- time = Random.value * 10000f;
- startPosition = base.transform.position;
- startRotation = base.transform.rotation;
- }
-
- private void Update()
- {
- time += Time.deltaTime;
- Quaternion quaternion = Quaternion.Euler(xRotation.Evaluate(time), yRotation.Evaluate(time), zRotation.Evaluate(time));
- base.transform.rotation = startRotation * quaternion;
- base.transform.position = startPosition + Vector3.up * yOffset.Evaluate(time);
- }
-}
diff --git a/GameCode/BuildSlot.cs b/GameCode/BuildSlot.cs
deleted file mode 100644
index 20fadac..0000000
--- a/GameCode/BuildSlot.cs
+++ /dev/null
@@ -1,616 +0,0 @@
-using System;
-using System.Collections.Generic;
-using I2.Loc;
-using Pathfinding;
-using UnityEngine;
-using UnityEngine.Events;
-
-[SelectionBase]
-public class BuildSlot : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public enum BuildingState
- {
- Blueprint,
- Built
- }
-
- [Serializable]
- public class Upgrade
- {
- public string upgradeTooltip;
-
- [Min(0f)]
- public int cost = 3;
-
- public List<UpgradeBranch> upgradeBranches;
- }
-
- [Serializable]
- public class UpgradeBranch
- {
- [Tooltip("Only necessary when there are multiple options:")]
- public Choice choiceDetails;
-
- public Mesh replacementMesh;
-
- public int goldIncomeChange;
-
- public int hpChange;
-
- public List<GameObject> objectsToActivate = new List<GameObject>();
-
- public List<GameObject> objectsToDisable = new List<GameObject>();
- }
-
- public string buildingName;
-
- [Tooltip("The root is the required parent object no arrow points to, so this is pretty much always gonna be the casle center.E.g. this is set to 0 this building can not have a higher level than the castle center level.")]
- [SerializeField]
- private int requiredRootLevelDifference = -100;
-
- private BuildSlot requiredRoot;
-
- private List<BuildSlot> isRootOf = new List<BuildSlot>();
-
- [SerializeField]
- private bool startDeactivated = true;
-
- [SerializeField]
- private BuildSlot activatorBuilding;
-
- [Min(0f)]
- [SerializeField]
- private int activatorLevel;
-
- [SerializeField]
- private bool activatorUpgradesThis;
-
- public List<Upgrade> upgrades = new List<Upgrade>();
-
- private int level;
-
- [SerializeField]
- private GameObject buildingParent;
-
- [SerializeField]
- private GameObject bluepringParent;
-
- [SerializeField]
- private BuildingInteractor interactor;
-
- [SerializeField]
- private MeshFilter mainMesh;
-
- [SerializeField]
- private BoxCollider mainCollider;
-
- [SerializeField]
- private BoxCollider damageCollider;
-
- [SerializeField]
- private BoxCollider interactorCollider;
-
- [SerializeField]
- private NavmeshCut navmeshCut;
-
- public bool hideGizmos;
-
- public float navmeshCutPadding = 1f;
-
- public BuildingMeshTracker buildingMeshTracker;
-
- [HideInInspector]
- public BuildingInteractor buildingInteractor;
-
- private int goldIncome;
-
- [HideInInspector]
- public UnityEvent OnUpgrade = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent OnParentUpgrade = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent OnUpgradeCancel = new UnityEvent();
-
- private List<BuildSlot> builtSlotsThatRelyOnThisBuilding = new List<BuildSlot>();
-
- private bool gotActivated;
-
- private Upgrade upgradeSelected;
-
- private PlayerInteraction playerInteractionSelected;
-
- public string LOCIDENTIFIER_NAME => "Building/" + buildingName;
-
- public List<BuildSlot> IsRootOf => isRootOf;
-
- public BuildSlot ActivatorBuilding => activatorBuilding;
-
- public int ActivatorLevel
- {
- get
- {
- return activatorLevel;
- }
- set
- {
- activatorLevel = value;
- }
- }
-
- public bool ActivatorUpgradesThis => activatorUpgradesThis;
-
- public List<Upgrade> Upgrades
- {
- get
- {
- if (!activatorUpgradesThis)
- {
- return upgrades;
- }
- return activatorBuilding.Upgrades;
- }
- }
-
- public int Level
- {
- get
- {
- if (!activatorUpgradesThis)
- {
- return level;
- }
- return activatorBuilding.Level;
- }
- }
-
- public BuildingInteractor Interactor => interactor;
-
- public MeshFilter MainMesh => mainMesh;
-
- public BuildingState State
- {
- get
- {
- if (level < 1)
- {
- return BuildingState.Blueprint;
- }
- return BuildingState.Built;
- }
- }
-
- public int GoldIncome
- {
- get
- {
- return goldIncome;
- }
- set
- {
- goldIncome = value;
- }
- }
-
- public bool CanBeUpgraded
- {
- get
- {
- if (activatorUpgradesThis)
- {
- return activatorBuilding.CanBeUpgraded;
- }
- if (requiredRoot == null)
- {
- return level < upgrades.Count;
- }
- if (level < upgrades.Count)
- {
- if (requiredRoot.Level <= level + requiredRootLevelDifference && level != 0)
- {
- return requiredRoot.Level >= 3;
- }
- return true;
- }
- return false;
- }
- }
-
- public bool NextUpgradeIsChoice
- {
- get
- {
- if (CanBeUpgraded)
- {
- return upgrades[level].upgradeBranches.Count > 1;
- }
- return false;
- }
- }
-
- public int NextUpgradeOrBuildCost
- {
- get
- {
- if (activatorUpgradesThis)
- {
- return activatorBuilding.NextUpgradeOrBuildCost;
- }
- if (CanBeUpgraded)
- {
- return upgrades[level].cost;
- }
- return 100;
- }
- set
- {
- if (activatorUpgradesThis)
- {
- activatorBuilding.NextUpgradeOrBuildCost = value;
- }
- if (CanBeUpgraded)
- {
- upgrades[level].cost = value;
- }
- }
- }
-
- public GameObject BuildingParent => buildingParent;
-
- private bool IsBlueprint => level == 0;
-
- public List<BuildSlot> BuiltSlotsThatRelyOnThisBuilding => builtSlotsThatRelyOnThisBuilding;
-
- public string GET_LOCIDENTIFIER_UPGRADE(int upgradeNumber)
- {
- return LOCIDENTIFIER_NAME + " Upgrade " + upgradeNumber;
- }
-
- public string GET_LOCIDENTIFIER_CHOICENAME(Choice choice)
- {
- return LOCIDENTIFIER_NAME + " Choice " + choice.name;
- }
-
- public string GET_LOCIDENTIFIER_CHOICEDESCRIPTION(Choice choice)
- {
- return GET_LOCIDENTIFIER_CHOICENAME(choice) + " Description";
- }
-
- public string ReturnTooltip()
- {
- if (!CanBeUpgraded)
- {
- return "";
- }
- string text = ((level <= 0) ? LocalizationManager.GetTranslation("Tooltip/Build") : LocalizationManager.GetTranslation("Tooltip/Upgrade Building"));
- string text2 = "<style=\"Tooltip Header\">" + text + " " + LocalizationManager.GetTranslation(LOCIDENTIFIER_NAME) + ":\n";
- text2 = text2 + "<style=\"Tooltip Default\">" + LocalizationManager.GetTranslation(GET_LOCIDENTIFIER_UPGRADE(level)) + "\n";
- text2 += "<style=\"Tooltip Numerals\">";
- int num = 0;
- Hp componentInChildren = GetComponentInChildren<Hp>(includeInactive: true);
- if ((bool)componentInChildren)
- {
- num = (int)componentInChildren.maxHp;
- }
- List<int> list = new List<int>();
- List<int> list2 = new List<int>();
- foreach (UpgradeBranch upgradeBranch in upgrades[level].upgradeBranches)
- {
- int item = goldIncome + upgradeBranch.goldIncomeChange;
- if (!list.Contains(item))
- {
- list.Add(item);
- }
- int item2 = num + upgradeBranch.hpChange;
- if (!list2.Contains(item2))
- {
- list2.Add(item2);
- }
- }
- list2.Sort();
- list.Sort();
- string text3 = "";
- string text4 = "";
- for (int i = 0; i < list.Count; i++)
- {
- if (i > 0)
- {
- text3 += "/";
- }
- text3 += list[i];
- }
- for (int j = 0; j < list2.Count; j++)
- {
- if (j > 0)
- {
- text4 += "/";
- }
- text4 += list2[j];
- }
- if (level > 0)
- {
- text2 = ((list2.Count <= 1 && list2[0] == num) ? (text2 + "\n" + num + "<sprite name=\"heart\">") : (text2 + "\n" + num + "<sprite name=\"heart\"> <sprite name=\"arrow_right\"> " + text4 + "<sprite name=\"heart\">"));
- if (list.Count > 1 || list[0] != goldIncome)
- {
- return text2 + "\n" + goldIncome + "<sprite name=\"coin\"> <sprite name=\"arrow_right\"> " + text3 + "<sprite name=\"coin\">";
- }
- return text2 + "\n" + goldIncome + "<sprite name=\"coin\">";
- }
- text2 = ((list2.Count <= 1 && list2[0] == num) ? (text2 + "\n<sprite name=\"arrow_right\"> " + num + "<sprite name=\"heart\">") : (text2 + "\n<sprite name=\"arrow_right\"> " + text4 + "<sprite name=\"heart\">"));
- if (list.Count > 1 || list[0] != goldIncome)
- {
- return text2 + "\n<sprite name=\"arrow_right\"> " + text3 + "<sprite name=\"coin\">";
- }
- return text2 + "\n<sprite name=\"arrow_right\"> " + goldIncome + "<sprite name=\"coin\">";
- }
-
- private void OnEnable()
- {
- foreach (Upgrade upgrade in upgrades)
- {
- foreach (UpgradeBranch upgradeBranch in upgrade.upgradeBranches)
- {
- foreach (GameObject item in upgradeBranch.objectsToActivate)
- {
- item.SetActive(value: false);
- }
- }
- }
- }
-
- public List<BuildSlot> GetBuildSlotsThatWillUnlockWhenUpgraded()
- {
- List<BuildSlot> list = new List<BuildSlot>();
- for (int i = 0; i < builtSlotsThatRelyOnThisBuilding.Count; i++)
- {
- if (builtSlotsThatRelyOnThisBuilding[i].activatorLevel == level)
- {
- list.Add(builtSlotsThatRelyOnThisBuilding[i]);
- }
- }
- return list;
- }
-
- public List<MeshFilter> GetBlueprintPreviewsThatWillUnlockWhenUpgraded()
- {
- List<MeshFilter> list = new List<MeshFilter>();
- for (int i = 0; i < builtSlotsThatRelyOnThisBuilding.Count; i++)
- {
- if (builtSlotsThatRelyOnThisBuilding[i].activatorLevel == level)
- {
- if (builtSlotsThatRelyOnThisBuilding[i].State == BuildingState.Built || builtSlotsThatRelyOnThisBuilding[i].activatorUpgradesThis)
- {
- MeshFilter[] componentsInChildren = builtSlotsThatRelyOnThisBuilding[i].buildingParent.GetComponentsInChildren<MeshFilter>();
- list.AddRange(componentsInChildren);
- }
- else
- {
- MeshFilter[] componentsInChildren2 = builtSlotsThatRelyOnThisBuilding[i].bluepringParent.GetComponentsInChildren<MeshFilter>();
- list.AddRange(componentsInChildren2);
- }
- }
- }
- return list;
- }
-
- public List<GameObject> GetGameObjectsThatWillUnlockWhenUpgraded(int _upgradeBranch)
- {
- if (level >= upgrades.Count)
- {
- return new List<GameObject>();
- }
- return upgrades[level].upgradeBranches[_upgradeBranch % upgrades[level].upgradeBranches.Count].objectsToActivate;
- }
-
- private void Start()
- {
- requiredRoot = this;
- while (requiredRoot.activatorBuilding != null)
- {
- requiredRoot = requiredRoot.activatorBuilding;
- }
- if (requiredRoot != this)
- {
- requiredRoot.isRootOf.Add(this);
- }
- if ((bool)activatorBuilding)
- {
- activatorBuilding.builtSlotsThatRelyOnThisBuilding.Add(this);
- }
- if (startDeactivated)
- {
- base.gameObject.SetActive(value: false);
- if ((bool)activatorBuilding)
- {
- activatorBuilding.OnUpgrade.AddListener(Activate);
- }
- }
- else
- {
- Activate();
- }
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void Activate()
- {
- if (!gotActivated && (!startDeactivated || activatorBuilding.Level > activatorLevel))
- {
- gotActivated = true;
- base.gameObject.SetActive(value: true);
- ActivateOrDeactivateBuliding(State);
- }
- }
-
- private void ActivateOrDeactivateBuliding(BuildingState nextState)
- {
- switch (nextState)
- {
- case BuildingState.Blueprint:
- buildingParent.SetActive(value: false);
- bluepringParent.SetActive(value: true);
- break;
- case BuildingState.Built:
- buildingParent.SetActive(value: true);
- bluepringParent.SetActive(value: false);
- break;
- }
- }
-
- public void TryToBuildOrUpgradeAndPay(PlayerInteraction player, bool _presentChoice = true)
- {
- if (!CanBeUpgraded)
- {
- return;
- }
- if (activatorUpgradesThis)
- {
- activatorBuilding.TryToBuildOrUpgradeAndPay(player, _presentChoice);
- return;
- }
- for (int i = 0; i < builtSlotsThatRelyOnThisBuilding.Count; i++)
- {
- BuildSlot buildSlot = builtSlotsThatRelyOnThisBuilding[i];
- if (buildSlot.ActivatorUpgradesThis && buildSlot.activatorBuilding == this)
- {
- buildSlot.gameObject.SetActive(value: true);
- buildSlot.ExecuteBuildOrUpgrade(player, _presentChoice: false);
- }
- }
- ExecuteBuildOrUpgrade(player, _presentChoice);
- for (int j = 0; j < builtSlotsThatRelyOnThisBuilding.Count; j++)
- {
- BuildSlot buildSlot2 = builtSlotsThatRelyOnThisBuilding[j];
- if ((bool)buildSlot2.buildingInteractor)
- {
- buildSlot2.buildingInteractor.UpdateInteractionState();
- }
- }
- if ((bool)buildingInteractor)
- {
- buildingInteractor.UpdateInteractionState();
- }
- }
-
- public void ExecuteBuildOrUpgrade(PlayerInteraction _player, bool _presentChoice)
- {
- if (CanBeUpgraded)
- {
- ExecuteUpgrade(upgrades[level], _player, _presentChoice);
- }
- }
-
- private void ExecuteUpgrade(Upgrade _upg, PlayerInteraction _player, bool _presentChoice)
- {
- if (ChoiceManager.instance.ChoiceCoroutineRunning)
- {
- return;
- }
- List<Choice> list = new List<Choice>();
- foreach (UpgradeBranch upgradeBranch in _upg.upgradeBranches)
- {
- list.Add(upgradeBranch.choiceDetails);
- }
- upgradeSelected = _upg;
- playerInteractionSelected = _player;
- if (_presentChoice)
- {
- ChoiceManager.instance.PresentChoices(list, this, OnUpgradeChoiceComplete);
- }
- else
- {
- OnUpgradeChoiceComplete(_upg.upgradeBranches[UnityEngine.Random.Range(0, _upg.upgradeBranches.Count)].choiceDetails);
- }
- }
-
- public void OnUpgradeChoiceComplete(Choice _choiceMade)
- {
- if (_choiceMade == null)
- {
- OnUpgradeCancel.Invoke();
- return;
- }
- if (level == 0)
- {
- ActivateOrDeactivateBuliding(BuildingState.Built);
- }
- level++;
- UpgradeBranch upgradeBranch = null;
- foreach (UpgradeBranch upgradeBranch2 in upgradeSelected.upgradeBranches)
- {
- if (upgradeBranch2.choiceDetails == _choiceMade)
- {
- upgradeBranch = upgradeBranch2;
- }
- }
- buildingMeshTracker.Unfreeze();
- buildingMeshTracker.FreezeMeshWithDelay();
- if (upgradeBranch.replacementMesh != null)
- {
- mainMesh.mesh = upgradeBranch.replacementMesh;
- }
- goldIncome += upgradeBranch.goldIncomeChange;
- Hp component = buildingParent.GetComponent<Hp>();
- if ((bool)component)
- {
- component.maxHp += upgradeBranch.hpChange;
- component.Heal(upgradeBranch.hpChange);
- }
- foreach (GameObject item in upgradeBranch.objectsToActivate)
- {
- item.SetActive(value: true);
- }
- foreach (GameObject item2 in upgradeBranch.objectsToDisable)
- {
- item2.SetActive(value: false);
- }
- foreach (BuildSlot item3 in isRootOf)
- {
- BuildingInteractor[] componentsInChildren = item3.GetComponentsInChildren<BuildingInteractor>();
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].UpdateInteractionState();
- }
- }
- if (activatorUpgradesThis)
- {
- OnParentUpgrade.Invoke();
- return;
- }
- OnUpgrade.Invoke();
- TooltipManager.instance.SetInteractorRefreshFlag();
- }
-
- public void DEBUGUpgradeToMax()
- {
- while (CanBeUpgraded)
- {
- TryToBuildOrUpgradeAndPay(null, _presentChoice: false);
- }
- if ((bool)interactor)
- {
- interactor.UpdateInteractionState();
- }
- }
-
- public void OnDusk()
- {
- if (IsBlueprint)
- {
- bluepringParent.SetActive(value: false);
- }
- }
-
- public void OnDawn_AfterSunrise()
- {
- if (IsBlueprint)
- {
- bluepringParent.SetActive(value: true);
- }
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-}
diff --git a/GameCode/BuildingDestructionHandler.cs b/GameCode/BuildingDestructionHandler.cs
deleted file mode 100644
index d03a975..0000000
--- a/GameCode/BuildingDestructionHandler.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using UnityEngine;
-
-public class BuildingDestructionHandler : MonoBehaviour
-{
- public bool shakeCamera;
-
- public MeshRenderer mainMesh;
-
- public ParticleSystem debrisParticles;
-
- public ParticleSystem smokeParticles;
-
- public AudioSource destructionSource;
-
- public float destructionPitchRange = 0.2f;
-
- private ParticleSystem.ShapeModule debrisShape;
-
- private ParticleSystem.ShapeModule smokeShape;
-
- private float debrisPlaytime = 5f;
-
- private float debrisClock;
-
- private void Awake()
- {
- debrisShape = debrisParticles.shape;
- smokeShape = smokeParticles.shape;
- }
-
- private void OnEnable()
- {
- if (shakeCamera && (bool)CameraController.instance)
- {
- CameraController.instance.ShakePunch();
- }
- debrisParticles.transform.position = mainMesh.transform.position;
- debrisParticles.transform.rotation = mainMesh.transform.rotation;
- smokeParticles.transform.position = mainMesh.transform.position;
- smokeParticles.transform.rotation = mainMesh.transform.rotation;
- debrisShape.scale = mainMesh.localBounds.size;
- debrisShape.position = mainMesh.localBounds.center;
- smokeShape.scale = mainMesh.localBounds.size;
- smokeShape.position = mainMesh.localBounds.center;
- debrisClock = 0f;
- debrisParticles.Play();
- destructionSource.pitch = Random.Range(1f - destructionPitchRange, 1f + destructionPitchRange);
- destructionSource.Play();
- }
-
- private void Update()
- {
- if (debrisParticles.isPlaying)
- {
- debrisClock += Time.deltaTime;
- if (debrisClock >= debrisPlaytime)
- {
- debrisParticles.Pause();
- }
- }
- }
-}
diff --git a/GameCode/BuildingFXProcessor.cs b/GameCode/BuildingFXProcessor.cs
deleted file mode 100644
index 05ab937..0000000
--- a/GameCode/BuildingFXProcessor.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System.Collections;
-using MoreMountains.Feedbacks;
-using UnityEngine;
-
-public class BuildingFXProcessor : MonoBehaviour
-{
- public BuildSlot targetBuilding;
-
- public Hp targetHp;
-
- public MMF_Player onBuildFX;
-
- public MMF_Player onParentBuildFX;
-
- public MMF_Player onUpgradeFX;
-
- public MMF_Player onParentUpgradeFX;
-
- public MMF_Player onReviveFX;
-
- private void Start()
- {
- targetBuilding.OnUpgrade.AddListener(OnBuildingUpgrade);
- targetBuilding.OnParentUpgrade.AddListener(OnParentBuildingUpgrade);
- if ((bool)targetHp)
- {
- targetHp.OnRevive.AddListener(OnBuildingRevive);
- }
- }
-
- private void OnBuildingUpgrade()
- {
- if (targetBuilding.Level == 1)
- {
- onBuildFX.PlayFeedbacks();
- }
- else if (targetBuilding.Level > 1)
- {
- onUpgradeFX.PlayFeedbacks();
- }
- }
-
- private void OnParentBuildingUpgrade()
- {
- StartCoroutine(PlayDelayedParentUpgradeFeedback());
- }
-
- private IEnumerator PlayDelayedParentUpgradeFeedback()
- {
- yield return null;
- if (targetBuilding.Level == 1)
- {
- onParentBuildFX.PlayFeedbacks();
- }
- else if (targetBuilding.Level > 1)
- {
- onParentUpgradeFX.PlayFeedbacks();
- }
- }
-
- private void OnBuildingRevive()
- {
- onReviveFX.PlayFeedbacks();
- }
-}
diff --git a/GameCode/BuildingInteractor.cs b/GameCode/BuildingInteractor.cs
deleted file mode 100644
index 4648471..0000000
--- a/GameCode/BuildingInteractor.cs
+++ /dev/null
@@ -1,437 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class BuildingInteractor : InteractorBase, DayNightCycle.IDaytimeSensitive
-{
- public enum InteractionState
- {
- None,
- Harvest,
- Upgrade
- }
-
- public static bool displayAllBuildPreviews;
-
- public BuildSlot targetBuilding;
-
- public Hp buildingHP;
-
- public CoinSpawner coinSpawner;
-
- public GameObject harvestCue;
-
- public GameObject harvestDeniedCue;
-
- public GameObject upgradeCue;
-
- public CostDisplay costDisplay;
-
- public Material previewMaterial;
-
- private List<IncomeModifyer> incomeModifiers = new List<IncomeModifyer>();
-
- private InteractionState currentState;
-
- private bool knockedOutTonight;
-
- private bool harvestedToday;
-
- private bool focussed;
-
- private Mesh upgradePreviewMesh;
-
- private bool interactionComplete;
-
- private bool interactionStarted;
-
- private bool isWaitingForChoice;
-
- private PlayerInteraction bufferedPlayer;
-
- public bool buildingIsCurrentlyBusyAndCantBeUpgraded;
-
- public List<IncomeModifyer> IncomeModifiers => incomeModifiers;
-
- public bool KnockedOutTonight => knockedOutTonight;
-
- public bool canBeHarvested
- {
- get
- {
- if (targetBuilding.State == BuildSlot.BuildingState.Built && !harvestedToday && targetBuilding.GoldIncome > 0)
- {
- return !knockedOutTonight;
- }
- return false;
- }
- }
-
- public bool harvestIsDenied
- {
- get
- {
- if (targetBuilding.State == BuildSlot.BuildingState.Built && targetBuilding.GoldIncome > 0)
- {
- return knockedOutTonight;
- }
- return false;
- }
- }
-
- public int GoldIncome => targetBuilding.GoldIncome;
-
- public bool HarvestCueVisible => harvestCue.activeSelf;
-
- public bool UpgradeCueVisible => upgradeCue.activeSelf;
-
- public override bool CanBeInteractedWith => currentState != InteractionState.None;
-
- public bool IsWaitingForChoice => isWaitingForChoice;
-
- public Mesh UpgradePreviewMesh
- {
- get
- {
- if (targetBuilding.State == BuildSlot.BuildingState.Built)
- {
- if (!targetBuilding.CanBeUpgraded)
- {
- return null;
- }
- BuildSlot.Upgrade upgrade = targetBuilding.Upgrades[targetBuilding.Level];
- int num = Mathf.RoundToInt(Time.time * 2f);
- return upgrade.upgradeBranches[num % upgrade.upgradeBranches.Count].replacementMesh;
- }
- return targetBuilding.MainMesh.mesh;
- }
- }
-
- public void MarkAsHarvested()
- {
- harvestedToday = true;
- }
-
- public override string ReturnTooltip()
- {
- return targetBuilding.ReturnTooltip();
- }
-
- private void Start()
- {
- targetBuilding.buildingInteractor = this;
- if ((bool)buildingHP)
- {
- buildingHP.OnKillOrKnockout.AddListener(OnKnockOut);
- }
- targetBuilding.OnUpgrade.AddListener(OnTargetUpgrade);
- targetBuilding.OnUpgradeCancel.AddListener(OnTargetUpgradeCanceled);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- UpdateInteractionState();
- if ((bool)TagManager.instance)
- {
- TagManager.instance.playerBuildingInteractors.Add(this);
- }
- }
-
- public override void InteractionBegin(PlayerInteraction player)
- {
- if (!isWaitingForChoice)
- {
- interactionStarted = true;
- interactionComplete = false;
- bufferedPlayer = player;
- if (currentState == InteractionState.Upgrade)
- {
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.CoinslotInteractionStart);
- }
- }
- }
-
- public override void InteractionHold(PlayerInteraction player)
- {
- if (currentState != InteractionState.Upgrade || interactionComplete || !interactionStarted || isWaitingForChoice)
- {
- return;
- }
- if (costDisplay.CompletelyFilled)
- {
- isWaitingForChoice = targetBuilding.NextUpgradeIsChoice;
- targetBuilding.TryToBuildOrUpgradeAndPay(player);
- if (!isWaitingForChoice)
- {
- BuildComplete();
- }
- else
- {
- costDisplay.gameObject.SetActive(value: false);
- }
- }
- else if (player.Balance > 0)
- {
- if (costDisplay.FillUp())
- {
- player.SpendCoins(1);
- }
- }
- else
- {
- costDisplay.Deny();
- }
- }
-
- public override void InteractionEnd(PlayerInteraction player)
- {
- if (!isWaitingForChoice && interactionStarted)
- {
- interactionStarted = false;
- if (currentState == InteractionState.Upgrade)
- {
- costDisplay.CancelFill(player);
- ThronefallAudioManager.Instance.MakeSureCoinFillSoundIsNotPlayingAnymore();
- }
- }
- }
-
- private void BuildComplete()
- {
- harvestedToday = true;
- interactionComplete = true;
- costDisplay.OnCompletion();
- UpdateInteractionState();
- }
-
- private void CancelBuild()
- {
- costDisplay.CancelFill(bufferedPlayer);
- }
-
- private void OnTargetUpgrade()
- {
- if (isWaitingForChoice)
- {
- isWaitingForChoice = false;
- costDisplay.gameObject.SetActive(value: true);
- interactionStarted = false;
- BuildComplete();
- }
- }
-
- private void OnTargetUpgradeCanceled()
- {
- if (isWaitingForChoice)
- {
- isWaitingForChoice = false;
- costDisplay.gameObject.SetActive(value: true);
- interactionStarted = false;
- CancelBuild();
- }
- }
-
- public void OnDusk()
- {
- knockedOutTonight = false;
- UpdateInteractionState(forceState: true);
- }
-
- public void OnDawn_BeforeSunrise()
- {
- harvestedToday = false;
- }
-
- public void OnDawn_AfterSunrise()
- {
- PlayerInteraction component = TagManager.instance.Players[0].GetComponent<PlayerInteraction>();
- Harvest(component);
- foreach (IncomeModifyer incomeModifier in incomeModifiers)
- {
- incomeModifier.OnDawn();
- }
- UpdateInteractionState();
- }
-
- public void UpdateInteractionState(bool forceState = false, InteractionState forcedState = InteractionState.None)
- {
- if (isWaitingForChoice)
- {
- return;
- }
- base.gameObject.SetActive(value: true);
- if (canBeHarvested)
- {
- currentState = InteractionState.Harvest;
- }
- else if (targetBuilding.CanBeUpgraded)
- {
- currentState = InteractionState.Upgrade;
- }
- else
- {
- currentState = InteractionState.None;
- }
- if (forceState)
- {
- currentState = forcedState;
- }
- if (harvestIsDenied)
- {
- harvestDeniedCue.SetActive(value: true);
- }
- else
- {
- harvestDeniedCue.SetActive(value: false);
- }
- if (buildingIsCurrentlyBusyAndCantBeUpgraded)
- {
- currentState = InteractionState.None;
- }
- switch (currentState)
- {
- case InteractionState.None:
- harvestCue.SetActive(value: false);
- upgradeCue.SetActive(value: false);
- DisableCostDisplay();
- break;
- case InteractionState.Harvest:
- harvestCue.SetActive(value: true);
- upgradeCue.SetActive(targetBuilding.CanBeUpgraded);
- DisableCostDisplay();
- break;
- case InteractionState.Upgrade:
- harvestCue.SetActive(value: false);
- if (focussed)
- {
- ActivateCostDisplay();
- upgradeCue.SetActive(value: false);
- break;
- }
- DisableCostDisplay();
- if (targetBuilding.State == BuildSlot.BuildingState.Built)
- {
- upgradeCue.SetActive(value: true);
- }
- else
- {
- upgradeCue.SetActive(value: false);
- }
- break;
- }
- }
-
- public override void Focus(PlayerInteraction player)
- {
- focussed = true;
- UpdateInteractionState();
- if (currentState == InteractionState.Harvest)
- {
- Harvest(player);
- }
- }
-
- public void Harvest(PlayerInteraction player)
- {
- if (canBeHarvested)
- {
- coinSpawner.TriggerCoinSpawn(targetBuilding.GoldIncome, player);
- harvestedToday = true;
- UpdateInteractionState();
- }
- }
-
- public override void Unfocus(PlayerInteraction player)
- {
- focussed = false;
- if (!costDisplay.CompletelyEmpty)
- {
- costDisplay.CancelFill(player);
- }
- UpdateInteractionState();
- ThronefallAudioManager.Instance.MakeSureCoinFillSoundIsNotPlayingAnymore();
- }
-
- private void ActivateCostDisplay()
- {
- costDisplay.UpdateDisplay(targetBuilding.NextUpgradeOrBuildCost);
- }
-
- private void DisableCostDisplay()
- {
- costDisplay.Hide();
- }
-
- public void OnKnockOut()
- {
- knockedOutTonight = true;
- }
-
- private void Update()
- {
- if ((focussed || displayAllBuildPreviews) && currentState == InteractionState.Upgrade)
- {
- if (!targetBuilding.ActivatorUpgradesThis)
- {
- PreviewSelf();
- }
- else
- {
- targetBuilding.ActivatorBuilding.buildingInteractor.PreviewSelf();
- }
- }
- }
-
- public void PreviewSelf()
- {
- MeshFilter mainMesh = targetBuilding.MainMesh;
- if ((bool)UpgradePreviewMesh)
- {
- Graphics.DrawMesh(UpgradePreviewMesh, targetBuilding.MainMesh.transform.localToWorldMatrix, previewMaterial, 0);
- }
- else if (!mainMesh.gameObject.activeInHierarchy)
- {
- Graphics.DrawMesh(mainMesh.mesh, mainMesh.transform.localToWorldMatrix, previewMaterial, 0);
- }
- int upgradeBranch = Mathf.RoundToInt(Time.time * 2f);
- List<GameObject> gameObjectsThatWillUnlockWhenUpgraded = targetBuilding.GetGameObjectsThatWillUnlockWhenUpgraded(upgradeBranch);
- for (int i = 0; i < gameObjectsThatWillUnlockWhenUpgraded.Count; i++)
- {
- if (gameObjectsThatWillUnlockWhenUpgraded[i].transform.parent == null)
- {
- PreviewGameObject(gameObjectsThatWillUnlockWhenUpgraded[i]);
- }
- else if (gameObjectsThatWillUnlockWhenUpgraded[i].transform.parent.gameObject.activeSelf || gameObjectsThatWillUnlockWhenUpgraded.Contains(gameObjectsThatWillUnlockWhenUpgraded[i].transform.parent.gameObject))
- {
- PreviewGameObject(gameObjectsThatWillUnlockWhenUpgraded[i]);
- }
- }
- for (int j = 0; j < targetBuilding.BuiltSlotsThatRelyOnThisBuilding.Count; j++)
- {
- BuildSlot buildSlot = targetBuilding.BuiltSlotsThatRelyOnThisBuilding[j];
- if (buildSlot.ActivatorUpgradesThis && buildSlot.ActivatorBuilding == targetBuilding && (bool)buildSlot.buildingInteractor)
- {
- buildSlot.buildingInteractor.PreviewSelf();
- }
- }
- List<MeshFilter> blueprintPreviewsThatWillUnlockWhenUpgraded = targetBuilding.GetBlueprintPreviewsThatWillUnlockWhenUpgraded();
- for (int k = 0; k < blueprintPreviewsThatWillUnlockWhenUpgraded.Count; k++)
- {
- mainMesh = blueprintPreviewsThatWillUnlockWhenUpgraded[k];
- Graphics.DrawMesh(mainMesh.mesh, mainMesh.transform.localToWorldMatrix, previewMaterial, 0);
- }
- }
-
- private void PreviewGameObject(GameObject _go)
- {
- MeshFilter[] componentsInChildren = _go.GetComponentsInChildren<MeshFilter>();
- foreach (MeshFilter meshFilter in componentsInChildren)
- {
- Graphics.DrawMesh(meshFilter.mesh, meshFilter.transform.localToWorldMatrix, previewMaterial, 0);
- }
- }
-
- private void OnDestroy()
- {
- if ((bool)TagManager.instance)
- {
- TagManager.instance.playerBuildingInteractors.Remove(this);
- }
- }
-}
diff --git a/GameCode/BuildingMeshTracker.cs b/GameCode/BuildingMeshTracker.cs
deleted file mode 100644
index 02e18e5..0000000
--- a/GameCode/BuildingMeshTracker.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System.Collections;
-using NGS.MeshFusionPro;
-using UnityEngine;
-
-public class BuildingMeshTracker : MonoBehaviour
-{
- public MeshFusionSource meshFuser;
-
- private Coroutine freezeWithDelay;
-
- private bool freezeWithDelayCoroRunning;
-
- private void OnEnable()
- {
- FreezeMeshWithDelay();
- }
-
- private void OnDisable()
- {
- Unfreeze();
- }
-
- public void Unfreeze()
- {
- if (freezeWithDelayCoroRunning)
- {
- StopCoroutine(freezeWithDelay);
- freezeWithDelayCoroRunning = false;
- }
- meshFuser.UndoCombine();
- }
-
- public void FreezeMeshWithDelay()
- {
- if (!meshFuser.gameObject.activeInHierarchy)
- {
- return;
- }
- if (freezeWithDelay == null)
- {
- freezeWithDelay = StartCoroutine(FreezeMeshWithDelayCoro());
- return;
- }
- if (freezeWithDelayCoroRunning)
- {
- StopCoroutine(freezeWithDelay);
- freezeWithDelayCoroRunning = false;
- }
- freezeWithDelay = StartCoroutine(FreezeMeshWithDelayCoro());
- }
-
- private IEnumerator FreezeMeshWithDelayCoro()
- {
- freezeWithDelayCoroRunning = true;
- yield return new WaitForSeconds(2f);
- meshFuser.AssignToController();
- freezeWithDelayCoroRunning = false;
- }
-}
diff --git a/GameCode/CameraBounds.cs b/GameCode/CameraBounds.cs
deleted file mode 100644
index 2eb79dc..0000000
--- a/GameCode/CameraBounds.cs
+++ /dev/null
@@ -1,135 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-[CreateAssetMenu]
-public class CameraBounds : ScriptableObject
-{
- public List<Vector2> bounds = new List<Vector2>();
-
- private List<Vector2> boundsToUse = new List<Vector2>();
-
- public void PrepareBounds(float offset)
- {
- boundsToUse = new List<Vector2>(bounds);
- for (int i = 0; i < 10; i++)
- {
- GrowShrinkPoly(boundsToUse, offset / 10f, offset / 10f * 2f);
- }
- MakeBoundsConvex(boundsToUse);
- }
-
- public static void GrowShrinkPoly(List<Vector2> bounds, float offset, float minDistance)
- {
- int count = bounds.Count;
- for (int i = 0; i < count; i++)
- {
- Vector2 vector = bounds[(i - 1 + count) % count];
- Vector2 vector2 = bounds[i];
- Vector2 vector3 = bounds[(i + 1) % count];
- Vector2 normalized = (vector2 - vector).normalized;
- Vector2 normalized2 = (vector3 - vector2).normalized;
- Vector2 vector4 = new Vector2(0f - normalized.y, normalized.x);
- Vector2 vector5 = new Vector2(0f - normalized2.y, normalized2.x);
- Vector2 vector6 = (vector4 + vector5) / 2f;
- Vector2 vector7 = vector2 + vector6 * offset;
- float num = Vector2.Distance(vector7, vector);
- float num2 = Vector2.Distance(vector7, vector3);
- if (num >= minDistance && num2 >= minDistance)
- {
- bounds[i] = vector7;
- }
- }
- }
-
- public static void BevelPolygon(List<Vector2> bounds, float percentageOfSideLength)
- {
- List<Vector2> list = new List<Vector2>();
- for (int i = 0; i < bounds.Count; i++)
- {
- Vector2 vector = bounds[(i - 1 + bounds.Count) % bounds.Count];
- Vector2 vector2 = bounds[i];
- Vector2 vector3 = bounds[(i + 1) % bounds.Count];
- Vector2 normalized = (vector - vector2).normalized;
- Vector2 normalized2 = (vector3 - vector2).normalized;
- float num = (vector - vector2).magnitude * percentageOfSideLength;
- float num2 = (vector3 - vector2).magnitude * percentageOfSideLength;
- Vector2 item = vector2 + normalized * num;
- Vector2 item2 = vector2 + normalized2 * num2;
- list.Add(item);
- list.Add(item2);
- }
- bounds.Clear();
- bounds.AddRange(list);
- }
-
- public static void DrawPolygonDebug(List<Vector2> bounds, float height)
- {
- int count = bounds.Count;
- for (int i = 0; i < count; i++)
- {
- Vector3 start = new Vector3(bounds[i].x, height, bounds[i].y);
- Vector3 end = new Vector3(bounds[(i + 1) % count].x, height, bounds[(i + 1) % count].y);
- Debug.DrawLine(start, end, Color.red, Time.deltaTime * 3f);
- }
- }
-
- public static void MakeBoundsConvex(List<Vector2> bounds)
- {
- int num = 0;
- while (num < bounds.Count)
- {
- Vector2 vector = bounds[num];
- Vector2 vector2 = bounds[(num + 1) % bounds.Count];
- Vector2 vector3 = bounds[(num + 2) % bounds.Count];
- float current = Mathf.Atan2(vector.y - vector2.y, vector.x - vector2.x) * 57.29578f;
- float target = Mathf.Atan2(vector3.y - vector2.y, vector3.x - vector2.x) * 57.29578f;
- if (Mathf.DeltaAngle(current, target) <= 0f)
- {
- bounds.RemoveAt((num + 1) % bounds.Count);
- }
- else
- {
- num++;
- }
- }
- }
-
- public bool IsInBounds(Vector2 point)
- {
- bool flag = false;
- int num = 0;
- int index = boundsToUse.Count - 1;
- while (num < boundsToUse.Count)
- {
- if (boundsToUse[num].y > point.y != boundsToUse[index].y > point.y && point.x < (boundsToUse[index].x - boundsToUse[num].x) * (point.y - boundsToUse[num].y) / (boundsToUse[index].y - boundsToUse[num].y) + boundsToUse[num].x)
- {
- flag = !flag;
- }
- index = num++;
- }
- return flag;
- }
-
- public Vector2 ClosestPointOnBounds(Vector2 point)
- {
- Vector2 result = default(Vector2);
- float num = float.MaxValue;
- int num2 = 0;
- int index = boundsToUse.Count - 1;
- while (num2 < boundsToUse.Count)
- {
- Vector2 vector = boundsToUse[index];
- Vector2 vector2 = boundsToUse[num2];
- float num3 = Vector2.Dot(point - vector, vector2 - vector) / Vector2.Dot(vector2 - vector, vector2 - vector);
- Vector2 vector3 = ((num3 < 0f) ? vector : ((!(num3 > 1f)) ? (vector + num3 * (vector2 - vector)) : vector2));
- float sqrMagnitude = (vector3 - point).sqrMagnitude;
- if (sqrMagnitude < num)
- {
- num = sqrMagnitude;
- result = vector3;
- }
- index = num2++;
- }
- return result;
- }
-}
diff --git a/GameCode/CameraController.cs b/GameCode/CameraController.cs
deleted file mode 100644
index a95b27b..0000000
--- a/GameCode/CameraController.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class CameraController : MonoBehaviour
-{
- public static CameraController instance;
-
- public AnimationCurve shakeCurve;
-
- public float shakeDuration = 1f;
-
- public float shakeScaleFactor = -1f;
-
- private Camera targetCamera;
-
- private float initialScale;
-
- private bool initialized;
-
- private void Awake()
- {
- if (instance != null)
- {
- Debug.LogWarning("More than one camera controller in the scene.");
- }
- instance = this;
- }
-
- private void Start()
- {
- targetCamera = Camera.main;
- initialScale = targetCamera.orthographicSize;
- initialized = true;
- }
-
- public void ShakePunch()
- {
- if (initialized)
- {
- StopAllCoroutines();
- StartCoroutine(ExecuteShake(shakeScaleFactor, shakeDuration));
- }
- }
-
- private IEnumerator ExecuteShake(float scale, float duration)
- {
- float timer = 0f;
- while (timer <= duration)
- {
- timer += Time.deltaTime;
- targetCamera.orthographicSize = initialScale + shakeCurve.Evaluate(timer / duration) * scale;
- yield return null;
- }
- targetCamera.orthographicSize = initialScale;
- }
-}
diff --git a/GameCode/CameraRig.cs b/GameCode/CameraRig.cs
deleted file mode 100644
index 7a87897..0000000
--- a/GameCode/CameraRig.cs
+++ /dev/null
@@ -1,120 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class CameraRig : MonoBehaviour
-{
- [Header("Forced Camera")]
- [HideInInspector]
- public Transform overrideCameraTarget;
-
- private Transform cameraTarget;
-
- private Transform currentTarget;
-
- private Quaternion startRotation;
-
- [SerializeField]
- private float transitionSpeed = 1f;
-
- [Header("Camera Boundaries")]
- [SerializeField]
- private CameraBounds camBounds;
-
- [SerializeField]
- private bool addCamBoundMode;
-
- [SerializeField]
- private KeyCode debugAddCamBound;
-
- [SerializeField]
- private KeyCode enableDisableCamBound;
-
- [SerializeField]
- private bool boundsEnabled = true;
-
- [SerializeField]
- private float outerBoundWidth = 12f;
-
- private Vector3 targetPosition;
-
- private bool transitionRunning;
-
- private void Start()
- {
- startRotation = base.transform.rotation;
- cameraTarget = base.transform.parent;
- base.transform.SetParent(null);
- }
-
- private void Update()
- {
- targetPosition = base.transform.position;
- if (overrideCameraTarget != null && currentTarget != overrideCameraTarget)
- {
- StartCoroutine(TransitionToTarget(overrideCameraTarget));
- }
- else if (overrideCameraTarget == null && currentTarget != cameraTarget)
- {
- StartCoroutine(TransitionToTarget(cameraTarget));
- }
- else if (!transitionRunning)
- {
- if (overrideCameraTarget != null)
- {
- base.transform.position = overrideCameraTarget.position;
- base.transform.rotation = overrideCameraTarget.rotation;
- }
- else
- {
- base.transform.position = cameraTarget.position;
- base.transform.rotation = startRotation;
- }
- }
- }
-
- private void HandleBounds()
- {
- if (!camBounds)
- {
- base.transform.position = targetPosition;
- return;
- }
- if (!boundsEnabled)
- {
- base.transform.position = targetPosition;
- return;
- }
- if (camBounds.IsInBounds(new Vector2(targetPosition.x, targetPosition.z)))
- {
- base.transform.position = targetPosition;
- return;
- }
- Vector2 vector = camBounds.ClosestPointOnBounds(new Vector2(targetPosition.x, targetPosition.z));
- float magnitude = (vector - new Vector2(targetPosition.x, targetPosition.z)).magnitude;
- Vector3 vector2 = new Vector3(vector.x, targetPosition.y, vector.y);
- float num = Mathf.Clamp01(magnitude / outerBoundWidth);
- num = 0f - Mathf.Pow(num, 2f) + 2f * num;
- Vector2 normalized = (new Vector2(targetPosition.x, targetPosition.z) - vector).normalized;
- Vector3 b = vector2 + new Vector3(normalized.x, 0f, normalized.y) * outerBoundWidth * 0.5f;
- base.transform.position = Vector3.Lerp(vector2, b, num);
- }
-
- private IEnumerator TransitionToTarget(Transform newTarget)
- {
- transitionRunning = true;
- Vector3 startPosition = base.transform.position;
- Quaternion startRotation = base.transform.rotation;
- float transitionTime2 = 0f;
- while (targetPosition != newTarget.position || base.transform.rotation != newTarget.rotation)
- {
- transitionTime2 = Mathf.Clamp(transitionTime2, 0f, 1f);
- float t = 3f * Mathf.Pow(transitionTime2, 2f) - 2f * Mathf.Pow(transitionTime2, 3f);
- base.transform.position = Vector3.Lerp(startPosition, newTarget.position, t);
- base.transform.rotation = Quaternion.Lerp(startRotation, newTarget.rotation, t);
- transitionTime2 += Time.deltaTime * transitionSpeed;
- yield return null;
- }
- currentTarget = newTarget;
- transitionRunning = false;
- }
-}
diff --git a/GameCode/CancelOrOpenPauseMenu.cs b/GameCode/CancelOrOpenPauseMenu.cs
deleted file mode 100644
index fc06dee..0000000
--- a/GameCode/CancelOrOpenPauseMenu.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Rewired;
-using UnityEngine;
-
-public class CancelOrOpenPauseMenu : MonoBehaviour
-{
- private Player input;
-
- private ChoiceManager choiceManager;
-
- private void Start()
- {
- input = ReInput.players.GetPlayer(0);
- choiceManager = ChoiceManager.instance;
- }
-
- private void Update()
- {
- if (input.GetButtonDown("Pause Menu & Cancel"))
- {
- if (choiceManager.ChoiceCoroutineRunning)
- {
- choiceManager.CancelChoice();
- }
- else
- {
- SceneTransitionManager.instance.TransitionFromGameplayToEndScreen(ScoreManager.Instance.CurrentScore, 0, 0);
- }
- }
- }
-}
diff --git a/GameCode/Checkbox.cs b/GameCode/Checkbox.cs
deleted file mode 100644
index 40e1344..0000000
--- a/GameCode/Checkbox.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using UnityEngine;
-using UnityEngine.Events;
-
-public class Checkbox : MonoBehaviour
-{
- public UnityEvent onToggle = new UnityEvent();
-
- public bool state;
-
- public GameObject checkObj;
-
- public void SetState(bool active)
- {
- state = active;
- UpdateDisplay();
- }
-
- public void Toggle()
- {
- state = !state;
- UpdateDisplay();
- onToggle.Invoke();
- }
-
- private void UpdateDisplay()
- {
- checkObj.SetActive(state);
- }
-}
diff --git a/GameCode/Choice.cs b/GameCode/Choice.cs
deleted file mode 100644
index d638ebf..0000000
--- a/GameCode/Choice.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using UnityEngine;
-
-[Serializable]
-public class Choice
-{
- public string name = "<nameHere>";
-
- [TextArea]
- public string tooltip = "<tooltipHere>";
-
- public Sprite icon;
-
- public EquippableBuildingUpgrade requiresUnlocked;
-
- public Choice(string _name, string _tooltip, Sprite _icon = null)
- {
- name = _name;
- tooltip = _tooltip;
- icon = null;
- }
-}
diff --git a/GameCode/ChoiceManager.cs b/GameCode/ChoiceManager.cs
deleted file mode 100644
index 6ab87f9..0000000
--- a/GameCode/ChoiceManager.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class ChoiceManager : MonoBehaviour
-{
- public static ChoiceManager instance;
-
- private bool choiceCoroutineRunning;
-
- private bool choiceCanceled;
-
- [HideInInspector]
- public List<Choice> availableChoices = new List<Choice>();
-
- [HideInInspector]
- public Choice choiceToReturn;
-
- [HideInInspector]
- public BuildSlot currentOriginBuildSlot;
-
- public bool ChoiceCoroutineWaiting
- {
- get
- {
- if (!choiceCanceled)
- {
- return choiceToReturn == null;
- }
- return false;
- }
- }
-
- public bool ChoiceCoroutineRunning => choiceCoroutineRunning;
-
- public void CancelChoice()
- {
- choiceCanceled = true;
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- public void PresentChoices(List<Choice> _availableChoices, BuildSlot originBuildSlot, Action<Choice> _onCompleteFunction)
- {
- if (!choiceCoroutineRunning)
- {
- currentOriginBuildSlot = originBuildSlot;
- if (_availableChoices.Count == 0)
- {
- _onCompleteFunction(null);
- return;
- }
- if (_availableChoices.Count == 1)
- {
- _onCompleteFunction(_availableChoices[0]);
- return;
- }
- availableChoices = _availableChoices;
- UIFrameManager.instance.PresentChoiceFrame();
- StartCoroutine(Choice(_availableChoices, _onCompleteFunction));
- }
- }
-
- private IEnumerator Choice(List<Choice> _availableChoices, Action<Choice> _onCompleteFunction)
- {
- choiceToReturn = null;
- choiceCoroutineRunning = true;
- choiceCanceled = false;
- LocalGamestate.Instance.SetPlayerFreezeState(frozen: true);
- while (choiceToReturn == null && !choiceCanceled)
- {
- yield return null;
- }
- LocalGamestate.Instance.SetPlayerFreezeState(frozen: false);
- yield return null;
- _onCompleteFunction(choiceToReturn);
- choiceCoroutineRunning = false;
- }
-}
diff --git a/GameCode/ChoiceUI.cs b/GameCode/ChoiceUI.cs
deleted file mode 100644
index 62415e2..0000000
--- a/GameCode/ChoiceUI.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class ChoiceUI : MonoBehaviour
-{
- public Choice choice;
-
- public TMP_Text title;
-
- public TMP_Text description;
-
- public GameObject selected;
-
- public Image icon;
-
- public GameObject unlocked;
-
- public GameObject locked;
-
- private bool isunlocked;
-
- public bool IsUnlocked => isunlocked;
-
- public void SetChoice(Choice _choice)
- {
- if (!_choice.requiresUnlocked)
- {
- isunlocked = true;
- }
- else
- {
- isunlocked = PerkManager.instance.UnlockedEquippables.Contains(_choice.requiresUnlocked);
- }
- unlocked.SetActive(isunlocked);
- locked.SetActive(!isunlocked);
- choice = _choice;
- title.text = _choice.name;
- description.text = _choice.tooltip;
- icon.sprite = _choice.icon;
- SetHighlighted(_highlighted: false);
- }
-
- public void SetHighlighted(bool _highlighted)
- {
- selected.SetActive(_highlighted);
- }
-}
diff --git a/GameCode/ChoiceUIFrameHelper.cs b/GameCode/ChoiceUIFrameHelper.cs
deleted file mode 100644
index 220e26a..0000000
--- a/GameCode/ChoiceUIFrameHelper.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-using System.Collections.Generic;
-using I2.Loc;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class ChoiceUIFrameHelper : MonoBehaviour
-{
- public UIFrame frame;
-
- public HorizontalLayoutGroup choicesParent;
-
- public TFUIUpgradeChoice upgradeChoiceButtonPrefab;
-
- public TextMeshProUGUI choiceTitle;
-
- public TextMeshProUGUI choiceDescription;
-
- private List<TFUIUpgradeChoice> choices = new List<TFUIUpgradeChoice>();
-
- public void OnShow()
- {
- choices.Clear();
- foreach (Transform item in choicesParent.transform)
- {
- Object.Destroy(item.gameObject);
- }
- foreach (Choice availableChoice in ChoiceManager.instance.availableChoices)
- {
- AddChoiceTFUI(choicesParent, availableChoice);
- }
- RecomputeNavigation();
- }
-
- private void AddChoiceTFUI(HorizontalLayoutGroup parent, Choice _choice)
- {
- TFUIUpgradeChoice component = Object.Instantiate(upgradeChoiceButtonPrefab, parent.transform).GetComponent<TFUIUpgradeChoice>();
- component.SetData(_choice);
- choices.Add(component);
- }
-
- private void RecomputeNavigation()
- {
- for (int i = 0; i < choices.Count; i++)
- {
- TFUIUpgradeChoice tFUIUpgradeChoice = choices[i];
- if (i <= 0)
- {
- tFUIUpgradeChoice.leftNav = choices[choices.Count - 1];
- }
- else
- {
- tFUIUpgradeChoice.leftNav = choices[i - 1];
- }
- if (i >= choices.Count - 1)
- {
- tFUIUpgradeChoice.rightNav = choices[0];
- }
- else
- {
- tFUIUpgradeChoice.rightNav = choices[i + 1];
- }
- }
- frame.firstSelected = choices[0];
- }
-
- public void UpdateSelectedChoice()
- {
- TFUIUpgradeChoice tFUIUpgradeChoice = null;
- if (frame.CurrentFocus != null)
- {
- tFUIUpgradeChoice = frame.CurrentFocus as TFUIUpgradeChoice;
- }
- if (tFUIUpgradeChoice == null && frame.CurrentSelection != null)
- {
- tFUIUpgradeChoice = frame.CurrentSelection as TFUIUpgradeChoice;
- }
- if (tFUIUpgradeChoice != null)
- {
- if (!tFUIUpgradeChoice.Locked)
- {
- BuildSlot currentOriginBuildSlot = ChoiceManager.instance.currentOriginBuildSlot;
- choiceTitle.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICENAME(tFUIUpgradeChoice.Data));
- choiceDescription.text = LocalizationManager.GetTranslation(currentOriginBuildSlot.GET_LOCIDENTIFIER_CHOICEDESCRIPTION(tFUIUpgradeChoice.Data));
- }
- else
- {
- choiceTitle.text = LocalizationManager.GetTranslation("Menu/Locked");
- choiceDescription.text = LocalizationManager.GetTranslation("Menu/Locked Choice Description");
- }
- }
- }
-
- public void OnApply()
- {
- TFUIUpgradeChoice tFUIUpgradeChoice = frame.LastApplied as TFUIUpgradeChoice;
- if (!(tFUIUpgradeChoice == null) && !tFUIUpgradeChoice.Locked)
- {
- ChoiceManager.instance.choiceToReturn = tFUIUpgradeChoice.Data;
- UIFrameManager.instance.CloseActiveFrame();
- }
- }
-}
diff --git a/GameCode/Coin.cs b/GameCode/Coin.cs
deleted file mode 100644
index 9ba06a2..0000000
--- a/GameCode/Coin.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-using UnityEngine;
-
-public class Coin : MonoBehaviour
-{
- public Transform mesh;
-
- public float maxSpeed = 20f;
-
- public float accelerationTime = 1f;
-
- public AnimationCurve accelerationCurve;
-
- public float spawnAnimationDuration = 1f;
-
- public float spawnAnimationScale = 10f;
-
- public AnimationCurve spawnAnimationCurve;
-
- public bool groundOnSpawn;
-
- public LayerMask groundLayer;
-
- public Vector3 groundingOffset;
-
- public bool registerInTagManager;
-
- public GameObject onPickUpParticles;
-
- private PlayerInteraction target;
-
- private Vector3 targetOffset = Vector3.up * 2f;
-
- private float pickupRange = 0.1f;
-
- private float spawnAnimationClock;
-
- private Vector3 initialPosition;
-
- private float accelerationClock;
-
- private bool grounded;
-
- private Vector3 groundingPos;
-
- private float groundingVelocity;
-
- private bool particlesSpawned;
-
- public bool IsFree => target == null;
-
- private void Start()
- {
- mesh.rotation = Quaternion.Euler(Random.Range(0, 360), Random.Range(0, 360), Random.Range(0, 360));
- initialPosition = base.transform.position;
- if (groundOnSpawn)
- {
- if (Physics.Raycast(new Ray(base.transform.position, Vector3.down), out var hitInfo, float.PositiveInfinity, groundLayer))
- {
- groundingPos = hitInfo.point + groundingOffset;
- initialPosition = groundingPos;
- }
- else
- {
- grounded = true;
- }
- }
- if (registerInTagManager && (bool)TagManager.instance)
- {
- TagManager.instance.freeCoins.Add(this);
- }
- if ((bool)TagManager.instance)
- {
- TagManager.instance.coins.Add(this);
- }
- }
-
- private void Update()
- {
- mesh.Rotate(45f * Time.deltaTime, 120f * Time.deltaTime, 0f, Space.World);
- if (groundOnSpawn && !grounded)
- {
- groundingVelocity += 9.81f * Time.deltaTime;
- base.transform.position = Vector3.MoveTowards(base.transform.position, groundingPos, groundingVelocity);
- if (Vector3.Distance(base.transform.position, groundingPos) < 0.05f)
- {
- base.transform.position = groundingPos;
- grounded = true;
- }
- }
- else if (spawnAnimationClock < spawnAnimationDuration)
- {
- spawnAnimationClock += Time.deltaTime;
- base.transform.position = initialPosition + Vector3.up * spawnAnimationScale * spawnAnimationCurve.Evaluate(spawnAnimationClock / spawnAnimationDuration);
- }
- else
- {
- if (!target)
- {
- return;
- }
- accelerationClock += Time.deltaTime;
- Vector3 vector = target.transform.position + targetOffset;
- base.transform.position = Vector3.MoveTowards(base.transform.position, vector, maxSpeed * Time.deltaTime * accelerationCurve.Evaluate(accelerationClock / accelerationTime));
- if (!particlesSpawned && Vector3.Distance(vector, base.transform.position) < 3f)
- {
- if (onPickUpParticles != null)
- {
- Object.Instantiate(onPickUpParticles, vector, Quaternion.identity, target.transform);
- }
- particlesSpawned = true;
- }
- if (Vector3.Distance(vector, base.transform.position) < pickupRange)
- {
- target.AddCoin();
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.CoinCollect);
- Object.Destroy(base.gameObject);
- }
- }
- }
-
- public void SetTarget(PlayerInteraction target)
- {
- this.target = target;
- }
-
- private void OnDestroy()
- {
- if (registerInTagManager && (bool)TagManager.instance)
- {
- TagManager.instance.freeCoins.Remove(this);
- }
- if ((bool)TagManager.instance)
- {
- TagManager.instance.coins.Remove(this);
- }
- }
-}
diff --git a/GameCode/CoinSpawner.cs b/GameCode/CoinSpawner.cs
deleted file mode 100644
index 0de0c20..0000000
--- a/GameCode/CoinSpawner.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class CoinSpawner : MonoBehaviour
-{
- public GameObject coinPrefab;
-
- public float interval = 0.5f;
-
- private int coinsLeft;
-
- public static List<CoinSpawner> allCoinSpawners = new List<CoinSpawner>();
-
- public int CoinsLeft => coinsLeft;
-
- public static int AllCoinsLeftToBeSpawned
- {
- get
- {
- int num = 0;
- for (int num2 = allCoinSpawners.Count - 1; num2 >= 0; num2--)
- {
- if (allCoinSpawners[num2] == null)
- {
- allCoinSpawners.RemoveAt(num2);
- }
- else
- {
- num += allCoinSpawners[num2].CoinsLeft;
- }
- }
- return num;
- }
- }
-
- private void OnEnable()
- {
- allCoinSpawners.Add(this);
- }
-
- private void OnDisable()
- {
- allCoinSpawners.Remove(this);
- }
-
- public void TriggerCoinSpawn(int amount, PlayerInteraction player)
- {
- StartCoroutine(SpawnCoins(amount, interval, player));
- }
-
- private IEnumerator SpawnCoins(int amount, float delay, PlayerInteraction player)
- {
- coinsLeft = amount;
- WaitForSeconds wait = new WaitForSeconds(delay);
- for (int i = 0; i < amount; i++)
- {
- coinsLeft--;
- Object.Instantiate(coinPrefab, base.transform.position, Quaternion.identity).GetComponent<Coin>().SetTarget(player);
- yield return wait;
- }
- }
-}
diff --git a/GameCode/Coinslot.cs b/GameCode/Coinslot.cs
deleted file mode 100644
index 4a505f1..0000000
--- a/GameCode/Coinslot.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using MoreMountains.Feedbacks;
-using UnityEngine;
-
-public class Coinslot : MonoBehaviour
-{
- public Transform fillTarget;
-
- public AnimationCurve fillCurve;
-
- public MMF_Player fullFeedback;
-
- public MMF_Player deniedFeedback;
-
- public MMF_Player appearFeedback;
-
- public MMF_Player disappearFeedback;
-
- public MMF_Player fullCompleteFeedback;
-
- private float fill01;
-
- public bool isFull => fill01 >= 1f;
-
- public float CurrentFill01 => fill01;
-
- public bool AddFill(float percentage, bool isLastCoin)
- {
- fill01 += percentage;
- fillTarget.localScale = Vector3.one * fillCurve.Evaluate(Mathf.Clamp01(fill01));
- if (isFull)
- {
- if (!isLastCoin)
- {
- fullFeedback.PlayFeedbacks();
- }
- else
- {
- fullCompleteFeedback.PlayFeedbacks();
- }
- return true;
- }
- return false;
- }
-
- public void SetEmpty()
- {
- fill01 = 0f;
- fillTarget.localScale = Vector3.zero;
- }
-
- public void PlayDeny()
- {
- deniedFeedback.PlayFeedbacks();
- }
-
- public void Appear()
- {
- fullFeedback.StopFeedbacks();
- deniedFeedback.StopFeedbacks();
- appearFeedback.StopFeedbacks();
- disappearFeedback.StopFeedbacks();
- fill01 = 0f;
- fillTarget.localScale = Vector3.zero;
- base.transform.localScale = Vector3.zero;
- appearFeedback.PlayFeedbacks();
- }
-
- public void Disappear()
- {
- fullFeedback.StopFeedbacks();
- deniedFeedback.StopFeedbacks();
- appearFeedback.StopFeedbacks();
- disappearFeedback.StopFeedbacks();
- disappearFeedback.PlayFeedbacks();
- }
-}
diff --git a/GameCode/ColorAndLightManager.cs b/GameCode/ColorAndLightManager.cs
deleted file mode 100644
index 83afad1..0000000
--- a/GameCode/ColorAndLightManager.cs
+++ /dev/null
@@ -1,235 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class ColorAndLightManager : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [SerializeField]
- private Light sunlight;
-
- [SerializeField]
- private Colorscheme colorscheme;
-
- [SerializeField]
- private float transitionDuration = 3f;
-
- [SerializeField]
- private Transform playerTransform;
-
- [SerializeField]
- private Material enemyMaterial;
-
- [SerializeField]
- private Material allyMaterial;
-
- [SerializeField]
- private Material playerMaterial;
-
- [SerializeField]
- private Material playerCapeMaterial;
-
- [SerializeField]
- private Material playerCrownMaterial;
-
- [SerializeField]
- private Material horseMaterial;
-
- [SerializeField]
- private Material buildingMaterial;
-
- [SerializeField]
- private Material buildingPreviewMaterial;
-
- [SerializeField]
- private Material coinMaterial;
-
- [SerializeField]
- private Material groundMaterial;
-
- [SerializeField]
- private Material groundHigh;
-
- [SerializeField]
- private Material groundLow;
-
- [SerializeField]
- private Material groundPatches;
-
- [SerializeField]
- private Material treeMaterial;
-
- [SerializeField]
- private Material rockMaterial;
-
- [SerializeField]
- private Material waterMaterial;
-
- [SerializeField]
- private Material oceanMaterial;
-
- [SerializeField]
- private Material roadMaterial;
-
- [SerializeField]
- private Material shadowShapeMaterial;
-
- [SerializeField]
- private Material customPostProcessingMaterial;
-
- public static Colorscheme currentColorscheme;
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDusk()
- {
- StopAllCoroutines();
- StartCoroutine(ToNight());
- }
-
- public void OnDawn_BeforeSunrise()
- {
- StopAllCoroutines();
- StartCoroutine(ToDay());
- }
-
- public void Daylight()
- {
- sunlight.color = colorscheme.dayLightColor;
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, colorscheme.dayLightColor);
- }
-
- public void SunsetLight()
- {
- sunlight.color = colorscheme.sunsetLightColor;
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, colorscheme.sunsetLightColor);
- }
-
- public void NightLight()
- {
- sunlight.color = colorscheme.nightLightColor;
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, colorscheme.nightLightColor);
- }
-
- private IEnumerator ToDay()
- {
- float timer2 = 0f;
- sunlight.color = colorscheme.nightLightColor;
- while (timer2 <= transitionDuration)
- {
- timer2 += Time.deltaTime;
- sunlight.color = Color.Lerp(colorscheme.nightLightColor, colorscheme.sunsetLightColor, timer2 / transitionDuration);
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, sunlight.color);
- yield return null;
- }
- timer2 = 0f;
- while (timer2 <= transitionDuration)
- {
- timer2 += Time.deltaTime;
- sunlight.color = Color.Lerp(colorscheme.sunsetLightColor, colorscheme.dayLightColor, timer2 / transitionDuration);
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, sunlight.color);
- yield return null;
- }
- sunlight.color = colorscheme.dayLightColor;
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, sunlight.color);
- }
-
- private IEnumerator ToNight()
- {
- float timer = 0f;
- sunlight.color = colorscheme.dayLightColor;
- while (timer <= transitionDuration)
- {
- timer += Time.deltaTime;
- sunlight.color = Color.Lerp(colorscheme.dayLightColor, colorscheme.nightLightColor, timer / transitionDuration);
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, sunlight.color);
- yield return null;
- }
- sunlight.color = colorscheme.nightLightColor;
- AdjustAllOutlineColorsBasedOnLight(colorscheme.globalShadowColor, sunlight.color);
- }
-
- private void Start()
- {
- sunlight.color = colorscheme.dayLightColor;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- ApplayColorScheme();
- if ((bool)playerTransform && (bool)colorscheme.particlesToAttachToPlayer)
- {
- Object.Instantiate(colorscheme.particlesToAttachToPlayer, playerTransform).transform.localPosition = Vector3.zero;
- }
- }
-
- public void ApplayColorScheme()
- {
- ApplyColorScheme(colorscheme);
- }
-
- public void ApplyColorScheme(Colorscheme _colorScheme)
- {
- SetMaterialColors(enemyMaterial, _colorScheme.enemyLightColor, _colorScheme.enemyMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(allyMaterial, _colorScheme.allyLightColor, _colorScheme.allyMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(playerMaterial, _colorScheme.playerLightColor, _colorScheme.playerMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(playerCapeMaterial, _colorScheme.playerCapeLightColor, _colorScheme.playerCapeMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(playerCrownMaterial, _colorScheme.playerCrownLightColor, _colorScheme.playerCrownMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(horseMaterial, _colorScheme.horseLightColor, _colorScheme.horseMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(buildingMaterial, _colorScheme.buildingLightColor, _colorScheme.buildingMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(_lightCol: new Color(_colorScheme.buildingLightColor.r, _colorScheme.buildingLightColor.g, _colorScheme.buildingLightColor.b, 0.15f), _midCol: new Color(_colorScheme.buildingMidColor.r, _colorScheme.buildingMidColor.g, _colorScheme.buildingMidColor.b, 0.15f), _shadowCol: new Color(_colorScheme.globalShadowColor.r, _colorScheme.globalShadowColor.g, _colorScheme.globalShadowColor.b, 0.15f), _mat: buildingPreviewMaterial);
- SetMaterialColors(coinMaterial, _colorScheme.coinLightColor, _colorScheme.coinMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(groundMaterial, _colorScheme.groundColor, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColors(groundPatches, _colorScheme.groundColor, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColors(groundHigh, _colorScheme.groundColorHigh, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColors(groundLow, _colorScheme.groundColorLow, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColors(treeMaterial, _colorScheme.treeLightColor, _colorScheme.treeMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(rockMaterial, _colorScheme.rockLightColor, _colorScheme.rockMidColor, _colorScheme.globalShadowColor);
- SetMaterialColors(waterMaterial, _colorScheme.waterLightColor, _colorScheme.waterSecondaryColor, _colorScheme.globalShadowColor);
- SetMaterialColors(oceanMaterial, _colorScheme.waterLightColor, _colorScheme.waterSecondaryColor, _colorScheme.globalShadowColor);
- SetMaterialColors(roadMaterial, _colorScheme.roadColor, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColors(shadowShapeMaterial, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor, _colorScheme.globalShadowColor);
- SetMaterialColorsPostProcessing(customPostProcessingMaterial, _colorScheme.brightness, _colorScheme.topColorAdd, _colorScheme.botColorAdd, _colorScheme.contrast, _colorScheme.saturation, _colorScheme.mix);
- currentColorscheme = _colorScheme;
- }
-
- private void SetMaterialColors(Material _mat, Color _lightCol, Color _midCol, Color _shadowCol)
- {
- _mat.SetColor("_BaseColor", _lightCol);
- _mat.SetColor("_ColorDim", _midCol);
- _mat.SetColor("_ColorDimExtra", _shadowCol);
- _mat.SetColor("_UnityShadowColor", _shadowCol);
- _mat.SetColor("_OutlineColor", _shadowCol);
- }
-
- public void AdjustAllOutlineColorsBasedOnLight(Color outlineColor, Color lightColor)
- {
- SetOutlineColorBasedOnLight(enemyMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(allyMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(playerMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(playerCapeMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(playerCrownMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(horseMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(buildingMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(coinMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(groundMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(groundPatches, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(treeMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(rockMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(waterMaterial, outlineColor, lightColor);
- SetOutlineColorBasedOnLight(oceanMaterial, outlineColor, lightColor);
- }
-
- private void SetOutlineColorBasedOnLight(Material _mat, Color _outlineCol, Color lightCol)
- {
- Color value = Color.Lerp(_outlineCol, _outlineCol * lightCol, _mat.GetFloat("_LightContribution"));
- _mat.SetColor("_OutlineColor", value);
- }
-
- private void SetMaterialColorsPostProcessing(Material _mat, float _brightness, Color _top, Color _bot, float _contrast, float _saturation, float _mix)
- {
- _mat.SetFloat("_Brightness", _brightness);
- _mat.SetColor("_TopColorAdd", _top);
- _mat.SetColor("_BotColorAdd", _bot);
- _mat.SetFloat("_Contrast", _contrast);
- _mat.SetFloat("_Saturation", _saturation);
- _mat.SetFloat("_Mix", _mix);
- }
-}
diff --git a/GameCode/Colorscheme.cs b/GameCode/Colorscheme.cs
deleted file mode 100644
index eac2adc..0000000
--- a/GameCode/Colorscheme.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "New Color Scheme", menuName = "SimpleSiege/Colorscheme")]
-public class Colorscheme : ScriptableObject
-{
- public readonly Color dayLightColor = Color.white;
-
- public Color sunsetLightColor;
-
- public Color nightLightColor;
-
- public Color globalShadowColor;
-
- [Header("Enemies")]
- public Color enemyLightColor;
-
- public Color enemyMidColor;
-
- [Header("Allies")]
- public Color allyLightColor;
-
- public Color allyMidColor;
-
- [Header("Player")]
- public Color playerLightColor;
-
- public Color playerMidColor;
-
- public Color playerCapeLightColor;
-
- public Color playerCapeMidColor;
-
- public Color playerCrownLightColor;
-
- public Color playerCrownMidColor;
-
- public Color horseLightColor;
-
- public Color horseMidColor;
-
- [Header("Buildings")]
- public Color buildingLightColor;
-
- public Color buildingMidColor;
-
- public Color coinLightColor;
-
- public Color coinMidColor;
-
- [Header("Environment")]
- public Color groundColor;
-
- public Color groundColorHigh;
-
- public Color groundColorLow;
-
- public Color treeLightColor;
-
- public Color treeMidColor;
-
- public Color rockLightColor;
-
- public Color rockMidColor;
-
- public Color waterLightColor;
-
- public Color waterSecondaryColor;
-
- public Color roadColor;
-
- [Header("UI")]
- public Color upgradeInteractorColor;
-
- [Header("Post Processing")]
- public float brightness;
-
- public Color topColorAdd = Color.black;
-
- public Color botColorAdd = Color.black;
-
- public float contrast = 1f;
-
- public float saturation = 1f;
-
- public float mix = 1f;
-
- [Header("Particles")]
- public GameObject particlesToAttachToPlayer;
-
- private void OnValidate()
- {
- ColorAndLightManager colorAndLightManager = Object.FindObjectOfType<ColorAndLightManager>();
- if ((bool)colorAndLightManager)
- {
- colorAndLightManager.ApplyColorScheme(this);
- }
- }
-}
diff --git a/GameCode/CommandUnits.cs b/GameCode/CommandUnits.cs
deleted file mode 100644
index d439867..0000000
--- a/GameCode/CommandUnits.cs
+++ /dev/null
@@ -1,261 +0,0 @@
-using System.Collections.Generic;
-using Pathfinding;
-using Rewired;
-using UnityEngine;
-
-public class CommandUnits : MonoBehaviour
-{
- public static CommandUnits instance;
-
- public UnitCommandRadiusAnimation rangeIndicator;
-
- public GameObject commandingIndicator;
-
- public ParticleSystem dropWaypointFx;
-
- public int drowWaypointParticleCount = 100;
-
- public float attractRange;
-
- public string graphNameOfPlayerUnits;
-
- public float unitDistanceFromEachOther = 2f;
-
- public float unitDistanceMoveStep = 0.5f;
-
- public int maxPositioningRepeats = 5;
-
- public float holdToHoldPositionTime = 1f;
-
- private ThronefallAudioManager audioManager;
-
- private AudioSet audioSet;
-
- private NNConstraint nearestConstraint = new NNConstraint();
-
- private List<PathfindMovementPlayerunit> playerUnitsCommanding = new List<PathfindMovementPlayerunit>();
-
- private List<PathfindMovementPlayerunit> playerUnitsCommandingBuffer = new List<PathfindMovementPlayerunit>();
-
- private Player input;
-
- [HideInInspector]
- public bool commanding;
-
- private TagManager tagManager;
-
- private AstarPath astarPath;
-
- private PlayerUpgradeManager playerUPgradeManager;
-
- private Hp hpPlayer;
-
- private float timeSincePlace;
-
- private bool switchedToHold;
-
- private List<AutoAttack> autoAttacksToEnable = new List<AutoAttack>();
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- audioManager = ThronefallAudioManager.Instance;
- audioSet = audioManager.audioContent;
- input = ReInput.players.GetPlayer(0);
- tagManager = TagManager.instance;
- astarPath = AstarPath.active;
- nearestConstraint.graphMask = GraphMask.FromGraphName(graphNameOfPlayerUnits);
- playerUPgradeManager = PlayerUpgradeManager.instance;
- hpPlayer = GetComponent<Hp>();
- }
-
- private void Update()
- {
- if (!commanding)
- {
- if (input.GetButtonDown("Command Units"))
- {
- rangeIndicator.Activate();
- }
- if (input.GetButton("Command Units") && hpPlayer.HpValue > 0f)
- {
- foreach (TaggedObject playerUnit in TagManager.instance.PlayerUnits)
- {
- if (tagManager.MeasureDistanceToTaggedObject(playerUnit, base.transform.position) <= attractRange)
- {
- OnUnitAdd(playerUnit);
- }
- }
- }
- else if (playerUnitsCommanding.Count > 0)
- {
- commanding = true;
- }
- }
- else
- {
- if (input.GetButtonDown("Command Units") || hpPlayer.HpValue <= 0f)
- {
- PlaceCommandedUnitsAndCalculateTargetPositions();
- timeSincePlace = 0f;
- switchedToHold = false;
- }
- if (input.GetButton("Command Units") && hpPlayer.HpValue > 0f)
- {
- timeSincePlace += Time.deltaTime;
- if (timeSincePlace > holdToHoldPositionTime && !switchedToHold)
- {
- switchedToHold = true;
- MakeUnitsInBufferHoldPosition();
- }
- }
- if (input.GetButtonUp("Command Units") || hpPlayer.HpValue <= 0f)
- {
- commanding = false;
- timeSincePlace = 0f;
- }
- }
- for (int num = playerUnitsCommanding.Count - 1; num >= 0; num--)
- {
- PathfindMovementPlayerunit pathfindMovementPlayerunit = playerUnitsCommanding[num];
- pathfindMovementPlayerunit.HomePosition = base.transform.position;
- if (!pathfindMovementPlayerunit.enabled)
- {
- playerUnitsCommanding.RemoveAt(num);
- OnUnitRemove(pathfindMovementPlayerunit);
- }
- }
- if (playerUnitsCommanding.Count > 0 && !input.GetButton("Command Units"))
- {
- commandingIndicator.SetActive(value: true);
- }
- else
- {
- commandingIndicator.SetActive(value: false);
- }
- if (!input.GetButton("Command Units") && rangeIndicator.Active)
- {
- rangeIndicator.Deactivate();
- }
- }
-
- public void MakeUnitsInBufferHoldPosition()
- {
- if (playerUnitsCommandingBuffer.Count > 0)
- {
- audioManager.PlaySoundAsOneShot(audioSet.HoldPosition, 0.45f, 0.9f + Random.value * 0.2f, audioManager.mgSFX, 10);
- }
- foreach (PathfindMovementPlayerunit item in playerUnitsCommandingBuffer)
- {
- item.HoldPosition = true;
- }
- }
-
- public void ForceCommandingEnd()
- {
- if (commanding)
- {
- PlaceCommandedUnitsAndCalculateTargetPositions();
- }
- }
-
- public void PlaceCommandedUnitsAndCalculateTargetPositions()
- {
- if (!commanding)
- {
- return;
- }
- if (playerUnitsCommanding.Count > 0)
- {
- audioManager.PlaySoundAsOneShot(audioSet.PlaceCommandingUnits, 0.35f, 0.9f + Random.value * 0.2f, audioManager.mgSFX, 10);
- }
- dropWaypointFx.Emit(drowWaypointParticleCount);
- foreach (PathfindMovementPlayerunit item in playerUnitsCommanding)
- {
- OnUnitRemove(item);
- }
- foreach (AutoAttack item2 in autoAttacksToEnable)
- {
- if ((bool)item2 && item2.GetComponent<Hp>().HpValue > 0f)
- {
- item2.enabled = true;
- }
- }
- autoAttacksToEnable.Clear();
- for (int i = 0; i < playerUnitsCommanding.Count; i++)
- {
- Vector3 vector = Quaternion.AngleAxis((float)(i / playerUnitsCommanding.Count) * 360f, Vector3.up) * Vector3.right * unitDistanceMoveStep;
- playerUnitsCommanding[i].HomePosition = astarPath.GetNearest(base.transform.position + vector + new Vector3(Random.value - 0.5f, 0f, Random.value - 0.5f) * unitDistanceMoveStep * 0.1f, nearestConstraint).position;
- }
- for (int j = 0; j < maxPositioningRepeats; j++)
- {
- bool flag = false;
- for (int k = 0; k < playerUnitsCommanding.Count; k++)
- {
- for (int l = k + 1; l < playerUnitsCommanding.Count; l++)
- {
- if (!((playerUnitsCommanding[k].HomePosition - playerUnitsCommanding[l].HomePosition).magnitude > unitDistanceFromEachOther))
- {
- Vector3 vector2 = (playerUnitsCommanding[k].HomePosition - playerUnitsCommanding[l].HomePosition).normalized * unitDistanceMoveStep;
- playerUnitsCommanding[k].HomePosition = astarPath.GetNearest(playerUnitsCommanding[k].HomePosition + vector2, nearestConstraint).position;
- playerUnitsCommanding[l].HomePosition = astarPath.GetNearest(playerUnitsCommanding[l].HomePosition - vector2, nearestConstraint).position;
- flag = true;
- }
- }
- }
- if (!flag)
- {
- break;
- }
- }
- playerUnitsCommandingBuffer.Clear();
- playerUnitsCommandingBuffer.AddRange(playerUnitsCommanding);
- playerUnitsCommanding.Clear();
- }
-
- public void OnUnitAdd(TaggedObject _t)
- {
- PathfindMovementPlayerunit pathfindMovementPlayerunit = (PathfindMovementPlayerunit)_t.Hp.PathfindMovement;
- if (!playerUnitsCommanding.Contains(pathfindMovementPlayerunit))
- {
- audioManager.PlaySoundAsOneShot(audioSet.AddedUnitToCommanding, 0.55f, 0.7f + (float)playerUnitsCommanding.Count * 0.025f, audioManager.mgSFX, 50);
- playerUnitsCommanding.Add(pathfindMovementPlayerunit);
- pathfindMovementPlayerunit.FollowPlayer(_follow: true);
- MaterialFlasherFX componentInChildren = pathfindMovementPlayerunit.GetComponentInChildren<MaterialFlasherFX>();
- if ((bool)componentInChildren)
- {
- componentInChildren.SetSelected(_selected: true);
- }
- _t.Tags.Add(TagManager.ETag.AUTO_Commanded);
- if (playerUPgradeManager.commander)
- {
- pathfindMovementPlayerunit.movementSpeed *= UpgradeCommander.instance.moveSpeedMultiplicator;
- }
- AutoAttack[] components = _t.GetComponents<AutoAttack>();
- foreach (AutoAttack autoAttack in components)
- {
- autoAttack.enabled = false;
- autoAttacksToEnable.Add(autoAttack);
- }
- }
- }
-
- public void OnUnitRemove(PathfindMovementPlayerunit _p)
- {
- _p.FollowPlayer(_follow: false);
- MaterialFlasherFX componentInChildren = _p.GetComponentInChildren<MaterialFlasherFX>();
- if ((bool)componentInChildren)
- {
- componentInChildren.SetSelected(_selected: false);
- }
- _p.GetComponent<TaggedObject>().Tags.Remove(TagManager.ETag.AUTO_Commanded);
- if (playerUPgradeManager.commander)
- {
- _p.movementSpeed /= UpgradeCommander.instance.moveSpeedMultiplicator;
- }
- }
-}
diff --git a/GameCode/CostDisplay.cs b/GameCode/CostDisplay.cs
deleted file mode 100644
index 350a1cf..0000000
--- a/GameCode/CostDisplay.cs
+++ /dev/null
@@ -1,256 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using MoreMountains.Feedbacks;
-using TMPro;
-using UnityEngine;
-
-public class CostDisplay : MonoBehaviour
-{
- public Coinslot coinslotPrefab;
-
- public Coin coinPrefab;
-
- public RectTransform gridParent;
-
- public float horizontalSpacing;
-
- public int maxElementsPerRow = 5;
-
- public AnimationCurve yDistribution = new AnimationCurve();
-
- public float peakYOffset = 50f;
-
- public float rowYSpacing = 100f;
-
- public Transform amountDisplayParent;
-
- public TextMeshProUGUI amountDisplay;
-
- public MMF_Player displayCostAmountShow;
-
- public MMF_Player displayCostAmountHide;
-
- private List<Coinslot> coinslotPool = new List<Coinslot>();
-
- private List<Coinslot> currentlyActiveCoinslots = new List<Coinslot>();
-
- private float elementWidth;
-
- private float yCurveLeftAnchor;
-
- private float yCurveRightAnchor;
-
- private bool reUpdateBecauseFuckUnityCanvas;
-
- private int currentAmount;
-
- private int currentlyFilledCoins;
-
- private float completeFillDuration = 1f;
-
- private float minFillDurationPerCoin = 0.15f;
-
- private bool denied;
-
- private bool inDisappearAnimation;
-
- private const float defaultScale = 0.01f;
-
- private const float largeUIScale = 0.0125f;
-
- public static int currentlyFilledCoinsFromLastActiveDisplay;
-
- public bool CompletelyFilled => currentlyFilledCoins >= currentAmount;
-
- public bool CompletelyEmpty => currentlyFilledCoins <= 0;
-
- private void Start()
- {
- elementWidth = coinslotPrefab.GetComponent<RectTransform>().sizeDelta.x;
- float num = (float)maxElementsPerRow * elementWidth + (float)(maxElementsPerRow - 1) * horizontalSpacing;
- yCurveLeftAnchor = (0f - num) / 2f + elementWidth / 2f;
- yCurveRightAnchor = num / 2f - elementWidth / 2f;
- }
-
- private void Update()
- {
- if (reUpdateBecauseFuckUnityCanvas)
- {
- UpdateDisplay(currentAmount, dirty: false);
- }
- }
-
- public void UpdateDisplay(int amount, bool dirty = true)
- {
- if (SettingsManager.Instance.UseLargeInGameUI)
- {
- base.transform.localScale = Vector3.one * 0.0125f;
- }
- else
- {
- base.transform.localScale = Vector3.one * 0.01f;
- }
- inDisappearAnimation = false;
- base.gameObject.SetActive(value: true);
- StopAllCoroutines();
- currentAmount = amount;
- reUpdateBecauseFuckUnityCanvas = dirty;
- currentlyActiveCoinslots.Clear();
- currentlyFilledCoins = 0;
- denied = false;
- amountDisplayParent.gameObject.SetActive(value: false);
- if (amount < 1)
- {
- foreach (Coinslot item in coinslotPool)
- {
- item.gameObject.SetActive(value: false);
- }
- return;
- }
- int num = amount - coinslotPool.Count;
- for (int i = 0; i < num; i++)
- {
- coinslotPool.Add(Object.Instantiate(coinslotPrefab.gameObject, gridParent).GetComponent<Coinslot>());
- }
- int num2 = amount;
- int num3 = num2;
- if (num3 > maxElementsPerRow)
- {
- num3 = maxElementsPerRow;
- }
- int num4 = 0;
- int num5 = 0;
- float num6 = (0f - ((float)num3 * elementWidth + (float)(num3 - 1) * horizontalSpacing)) / 2f + elementWidth / 2f;
- for (int j = 0; j < coinslotPool.Count; j++)
- {
- Coinslot coinslot = coinslotPool[j];
- if (j < amount)
- {
- coinslot.gameObject.SetActive(value: true);
- currentlyActiveCoinslots.Add(coinslot);
- coinslot.transform.localScale = Vector3.zero;
- float num7 = num6 + ((float)num4 * elementWidth + (float)num4 * horizontalSpacing);
- float y = peakYOffset * yDistribution.Evaluate(Mathf.InverseLerp(yCurveLeftAnchor, yCurveRightAnchor, num7)) + rowYSpacing * (float)num5;
- coinslotPool[j].GetComponent<RectTransform>().anchoredPosition = new Vector2(num7, y);
- num4++;
- num2--;
- if (num4 >= maxElementsPerRow)
- {
- num3 = num2;
- if (num3 > maxElementsPerRow)
- {
- num3 = maxElementsPerRow;
- }
- num4 = 0;
- num5++;
- num6 = (0f - ((float)num3 * elementWidth + (float)(num3 - 1) * horizontalSpacing)) / 2f + elementWidth / 2f;
- }
- }
- else
- {
- coinslot.gameObject.SetActive(value: false);
- }
- }
- foreach (Coinslot currentlyActiveCoinslot in currentlyActiveCoinslots)
- {
- currentlyActiveCoinslot.SetEmpty();
- }
- float num8 = (float)currentlyActiveCoinslots.Count * minFillDurationPerCoin;
- if (num8 < completeFillDuration)
- {
- num8 = 1f;
- }
- ThronefallAudioManager.SetCoinDisplayFillTime(num8);
- StartCoroutine(AnimateShowSlots());
- }
-
- public bool FillUp()
- {
- currentlyFilledCoinsFromLastActiveDisplay = currentlyFilledCoins;
- if (currentlyActiveCoinslots.Count > currentlyFilledCoins && currentlyActiveCoinslots[currentlyFilledCoins].AddFill(Time.deltaTime * (1f / Mathf.Clamp(completeFillDuration / (float)currentAmount, minFillDurationPerCoin, completeFillDuration)), currentlyActiveCoinslots.Count - 1 == currentlyFilledCoins))
- {
- currentlyFilledCoins++;
- currentlyFilledCoinsFromLastActiveDisplay = currentlyFilledCoins;
- return true;
- }
- return false;
- }
-
- public void Deny()
- {
- if (!denied)
- {
- currentlyActiveCoinslots[currentlyFilledCoins].PlayDeny();
- ThronefallAudioManager.Instance.MakeSureCoinFillSoundIsNotPlayingAnymore();
- denied = true;
- }
- }
-
- public void OnCompletion()
- {
- currentlyFilledCoins = 0;
- currentlyFilledCoinsFromLastActiveDisplay = 0;
- denied = false;
- }
-
- public void CancelFill(PlayerInteraction player)
- {
- foreach (Coinslot currentlyActiveCoinslot in currentlyActiveCoinslots)
- {
- if (currentlyActiveCoinslot.isFull)
- {
- Object.Instantiate(coinPrefab, currentlyActiveCoinslot.transform.position, currentlyActiveCoinslot.transform.rotation).SetTarget(player);
- }
- currentlyActiveCoinslot.SetEmpty();
- }
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.CoinFillCancel);
- currentlyFilledCoins = 0;
- currentlyFilledCoinsFromLastActiveDisplay = 0;
- denied = false;
- }
-
- private IEnumerator AnimateShowSlots()
- {
- float waitTime = 0.2f / (float)currentAmount;
- if (currentAmount > maxElementsPerRow)
- {
- amountDisplayParent.gameObject.SetActive(value: true);
- amountDisplay.text = "x" + currentAmount;
- displayCostAmountShow.PlayFeedbacks();
- yield return new WaitForSeconds(waitTime);
- }
- foreach (Coinslot currentlyActiveCoinslot in currentlyActiveCoinslots)
- {
- currentlyActiveCoinslot.Appear();
- yield return new WaitForSeconds(waitTime);
- }
- }
-
- public void Hide()
- {
- if (base.gameObject.activeSelf && !inDisappearAnimation)
- {
- inDisappearAnimation = true;
- StopAllCoroutines();
- StartCoroutine(AnimateHideSlots());
- }
- }
-
- private IEnumerator AnimateHideSlots()
- {
- float waitTime = 0.2f / (float)currentAmount;
- if (amountDisplay.gameObject.activeInHierarchy)
- {
- displayCostAmountHide.PlayFeedbacks();
- yield return new WaitForSeconds(waitTime);
- }
- foreach (Coinslot currentlyActiveCoinslot in currentlyActiveCoinslots)
- {
- currentlyActiveCoinslot.Disappear();
- yield return new WaitForSeconds(waitTime);
- }
- yield return new WaitForSeconds(1f);
- inDisappearAnimation = false;
- base.gameObject.SetActive(value: false);
- }
-}
diff --git a/GameCode/CustomPostProcess.cs b/GameCode/CustomPostProcess.cs
deleted file mode 100644
index 6b88bfc..0000000
--- a/GameCode/CustomPostProcess.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System;
-using UnityEngine;
-using UnityEngine.Rendering;
-using UnityEngine.Rendering.Universal;
-
-public class CustomPostProcess : ScriptableRendererFeature
-{
- private class CustomRenderPass : ScriptableRenderPass
- {
- public RenderTargetIdentifier source;
-
- private Material mat;
-
- private RenderTargetHandle tempRenderTargetHandle;
-
- public CustomRenderPass(Material _mat)
- {
- mat = _mat;
- tempRenderTargetHandle.Init("_TemporaryColorTexture");
- }
-
- public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData)
- {
- }
-
- public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
- {
- CommandBuffer commandBuffer = CommandBufferPool.Get();
- commandBuffer.GetTemporaryRT(tempRenderTargetHandle.id, renderingData.cameraData.cameraTargetDescriptor);
- Blit(commandBuffer, source, tempRenderTargetHandle.Identifier(), mat);
- Blit(commandBuffer, tempRenderTargetHandle.Identifier(), source);
- context.ExecuteCommandBuffer(commandBuffer);
- CommandBufferPool.Release(commandBuffer);
- }
-
- public override void OnCameraCleanup(CommandBuffer cmd)
- {
- }
- }
-
- [Serializable]
- public class Settings
- {
- public Material material;
- }
-
- private CustomRenderPass m_ScriptablePass;
-
- public Settings settings;
-
- public override void Create()
- {
- m_ScriptablePass = new CustomRenderPass(settings.material);
- m_ScriptablePass.renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing;
- }
-
- public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
- {
- m_ScriptablePass.source = renderer.cameraColorTarget;
- renderer.EnqueuePass(m_ScriptablePass);
- }
-}
diff --git a/GameCode/DamageModifyer.cs b/GameCode/DamageModifyer.cs
deleted file mode 100644
index 4e44e7b..0000000
--- a/GameCode/DamageModifyer.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-[Serializable]
-public class DamageModifyer
-{
- public List<TagManager.ETag> requiredTags = new List<TagManager.ETag>();
-
- public float damageAdded;
-
- public float damageMultiplyer = 1f;
-
- public bool AppliesTo(TaggedObject _taggedObject)
- {
- for (int i = 0; i < requiredTags.Count; i++)
- {
- if (!_taggedObject.Tags.Contains(requiredTags[i]))
- {
- return false;
- }
- }
- return true;
- }
-
- public static float CalculateDamageOnTarget(TaggedObject _taggedObject, List<DamageModifyer> _damageModifyers, float _finalDamageMultiplyer = 1f)
- {
- float num = 0f;
- for (int i = 0; i < _damageModifyers.Count; i++)
- {
- DamageModifyer damageModifyer = _damageModifyers[i];
- if (damageModifyer.AppliesTo(_taggedObject))
- {
- num += damageModifyer.damageAdded;
- num *= damageModifyer.damageMultiplyer;
- }
- }
- return num * _finalDamageMultiplyer;
- }
-}
diff --git a/GameCode/DayNightCycle.cs b/GameCode/DayNightCycle.cs
deleted file mode 100644
index 348a641..0000000
--- a/GameCode/DayNightCycle.cs
+++ /dev/null
@@ -1,202 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class DayNightCycle : MonoBehaviour
-{
- public interface IDaytimeSensitive
- {
- void OnDusk();
-
- void OnDawn_AfterSunrise();
-
- void OnDawn_BeforeSunrise();
- }
-
- public enum Timestate
- {
- Day,
- Night
- }
-
- private static DayNightCycle instance;
-
- public float sunriseTime = 2.5f;
-
- private Timestate currentTimestate;
-
- private float currentNightLength;
-
- private List<IDaytimeSensitive> daytimeSensitiveObjects = new List<IDaytimeSensitive>();
-
- private bool afterSunrise = true;
-
- public static DayNightCycle Instance => instance;
-
- public Timestate CurrentTimestate => currentTimestate;
-
- public float CurrentNightLength => currentNightLength;
-
- public bool AfterSunrise => afterSunrise;
-
- public int CoinCountToBeHarvested
- {
- get
- {
- int num = 0;
- foreach (BuildingInteractor playerBuildingInteractor in TagManager.instance.playerBuildingInteractors)
- {
- if ((bool)playerBuildingInteractor.coinSpawner)
- {
- num += playerBuildingInteractor.coinSpawner.CoinsLeft;
- }
- if (playerBuildingInteractor.canBeHarvested)
- {
- num += playerBuildingInteractor.GoldIncome;
- }
- }
- return num;
- }
- }
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(this);
- }
- else
- {
- instance = this;
- }
- }
-
- private void Update()
- {
- if (LocalGamestate.Instance.CurrentState == LocalGamestate.State.InMatch)
- {
- if (currentTimestate == Timestate.Night)
- {
- currentNightLength += Time.deltaTime;
- }
- if (currentTimestate == Timestate.Night && (bool)TagManager.instance && (bool)EnemySpawner.instance && !EnemySpawner.instance.SpawningInProgress && TagManager.instance.CountAllTaggedObjectsWithTag(TagManager.ETag.EnemyOwned) < 1 && base.gameObject.activeInHierarchy)
- {
- StartCoroutine(SwitchToDayCoroutine());
- }
- }
- }
-
- private void DawnCallAfterSunrise()
- {
- afterSunrise = true;
- Hp.ReviveAllKnockedOutPlayerUnitsAndBuildings();
- for (int num = daytimeSensitiveObjects.Count - 1; num >= 0; num--)
- {
- if (daytimeSensitiveObjects[num] != null)
- {
- daytimeSensitiveObjects[num].OnDawn_AfterSunrise();
- }
- else
- {
- daytimeSensitiveObjects.RemoveAt(num);
- }
- }
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.BuildingRepair);
- LevelData levelDataForActiveScene = LevelProgressManager.instance.GetLevelDataForActiveScene();
- int networth = PlayerInteraction.instance.Networth;
- networth += TagManager.instance.freeCoins.Count;
- networth += CoinCountToBeHarvested;
- levelDataForActiveScene.dayToDayNetworth.Add(networth);
- PlayerInteraction component = TagManager.instance.Players[0].GetComponent<PlayerInteraction>();
- foreach (Coin freeCoin in TagManager.instance.freeCoins)
- {
- if (freeCoin.IsFree)
- {
- freeCoin.SetTarget(component);
- }
- }
- }
-
- private void DawnCallBeforeSunrise()
- {
- afterSunrise = false;
- for (int num = daytimeSensitiveObjects.Count - 1; num >= 0; num--)
- {
- if (daytimeSensitiveObjects[num] != null)
- {
- daytimeSensitiveObjects[num].OnDawn_BeforeSunrise();
- }
- else
- {
- daytimeSensitiveObjects.RemoveAt(num);
- }
- }
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.NightSurvived);
- }
-
- private void DuskCall()
- {
- afterSunrise = false;
- currentNightLength = 0f;
- for (int num = daytimeSensitiveObjects.Count - 1; num >= 0; num--)
- {
- if (daytimeSensitiveObjects[num] != null)
- {
- daytimeSensitiveObjects[num].OnDusk();
- }
- else
- {
- daytimeSensitiveObjects.RemoveAt(num);
- }
- }
- }
-
- public void ToggleDaytime()
- {
- if (currentTimestate == Timestate.Day)
- {
- currentTimestate = Timestate.Night;
- DuskCall();
- }
- else
- {
- currentTimestate = Timestate.Day;
- DawnCallBeforeSunrise();
- DawnCallAfterSunrise();
- }
- }
-
- private IEnumerator SwitchToDayCoroutine()
- {
- if (currentTimestate == Timestate.Night)
- {
- currentTimestate = Timestate.Day;
- DawnCallBeforeSunrise();
- yield return new WaitForSeconds(sunriseTime);
- DawnCallAfterSunrise();
- if (EnemySpawner.instance.Wavenumber >= EnemySpawner.instance.waves.Count - 1)
- {
- LocalGamestate.Instance.SetState(LocalGamestate.State.AfterMatchVictory);
- }
- }
- }
-
- public void SwitchToNight()
- {
- if (currentTimestate != Timestate.Night)
- {
- currentTimestate = Timestate.Night;
- DuskCall();
- }
- }
-
- public void RegisterDaytimeSensitiveObject(IDaytimeSensitive obj)
- {
- daytimeSensitiveObjects.Add(obj);
- }
-
- public void UnregisterDaytimeSensitiveObject(IDaytimeSensitive obj)
- {
- daytimeSensitiveObjects.Remove(obj);
- }
-}
diff --git a/GameCode/DaytimeDisplay.cs b/GameCode/DaytimeDisplay.cs
deleted file mode 100644
index e179fcc..0000000
--- a/GameCode/DaytimeDisplay.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class DaytimeDisplay : MonoBehaviour
-{
- public TextMeshProUGUI display;
-
- private void Update()
- {
- if ((bool)DayNightCycle.Instance)
- {
- display.text = DayNightCycle.Instance.CurrentTimestate.ToString();
- }
- }
-}
diff --git a/GameCode/DaytimeSensitiveActivation.cs b/GameCode/DaytimeSensitiveActivation.cs
deleted file mode 100644
index aef1a95..0000000
--- a/GameCode/DaytimeSensitiveActivation.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using UnityEngine;
-
-public class DaytimeSensitiveActivation : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public DayNightCycle.Timestate activeTime;
-
- public GameObject target;
-
- public void OnDawn_AfterSunrise()
- {
- if (activeTime == DayNightCycle.Timestate.Day)
- {
- target.SetActive(value: true);
- }
- else
- {
- target.SetActive(value: false);
- }
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- if (activeTime == DayNightCycle.Timestate.Night)
- {
- target.SetActive(value: true);
- }
- else
- {
- target.SetActive(value: false);
- }
- }
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- if (DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- target.SetActive(activeTime == DayNightCycle.Timestate.Day);
- }
- else
- {
- target.SetActive(activeTime == DayNightCycle.Timestate.Night);
- }
- }
-}
diff --git a/GameCode/DaytimeSensitiveLight.cs b/GameCode/DaytimeSensitiveLight.cs
deleted file mode 100644
index da571d3..0000000
--- a/GameCode/DaytimeSensitiveLight.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-[RequireComponent(typeof(Light))]
-public class DaytimeSensitiveLight : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [SerializeField]
- private Color dayColor = Color.white;
-
- [SerializeField]
- private Color sunsetColor;
-
- [SerializeField]
- private Color nightColor;
-
- [SerializeField]
- private float dayToSunsetDuration = 2f;
-
- [SerializeField]
- private float sunsetToNightDuration = 2f;
-
- private Light targetLight;
-
- private void Start()
- {
- targetLight = GetComponent<Light>();
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDusk()
- {
- StopAllCoroutines();
- StartCoroutine(ToNight());
- }
-
- public void OnDawn_BeforeSunrise()
- {
- StopAllCoroutines();
- StartCoroutine(ToDay());
- }
-
- private IEnumerator ToDay()
- {
- float timer2 = 0f;
- while (timer2 <= sunsetToNightDuration)
- {
- timer2 += Time.deltaTime;
- targetLight.color = Color.Lerp(nightColor, sunsetColor, timer2 / sunsetToNightDuration);
- yield return null;
- }
- timer2 = 0f;
- while (timer2 <= dayToSunsetDuration)
- {
- timer2 += Time.deltaTime;
- targetLight.color = Color.Lerp(sunsetColor, dayColor, timer2 / dayToSunsetDuration);
- yield return null;
- }
- targetLight.color = dayColor;
- }
-
- private IEnumerator ToNight()
- {
- float timer2 = 0f;
- while (timer2 <= dayToSunsetDuration)
- {
- timer2 += Time.deltaTime;
- targetLight.color = Color.Lerp(dayColor, sunsetColor, timer2 / dayToSunsetDuration);
- yield return null;
- }
- timer2 = 0f;
- while (timer2 <= sunsetToNightDuration)
- {
- timer2 += Time.deltaTime;
- targetLight.color = Color.Lerp(dayColor, nightColor, timer2 / sunsetToNightDuration);
- yield return null;
- }
- targetLight.color = nightColor;
- }
-}
diff --git a/GameCode/DebugBuildingDestroyer.cs b/GameCode/DebugBuildingDestroyer.cs
deleted file mode 100644
index 4e9d10c..0000000
--- a/GameCode/DebugBuildingDestroyer.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using UnityEngine;
-
-public class DebugBuildingDestroyer : MonoBehaviour
-{
- public LayerMask interactionLayer;
-
- public float interactionRadius = 4f;
-
- private void Update()
- {
- Collider[] array = Physics.OverlapSphere(base.transform.position, interactionRadius, interactionLayer);
- Hp hp = null;
- float num = float.PositiveInfinity;
- Collider[] array2 = array;
- foreach (Collider collider in array2)
- {
- Hp componentInParent = collider.GetComponentInParent<Hp>();
- if (!(componentInParent.gameObject == base.gameObject) && (bool)componentInParent)
- {
- float num2 = Vector3.Distance(base.transform.position, collider.ClosestPoint(base.transform.position));
- if (num2 < num)
- {
- hp = componentInParent;
- num = num2;
- }
- }
- }
- if ((bool)hp && Input.GetKeyDown(KeyCode.LeftShift))
- {
- hp.TakeDamage(hp.maxHp);
- }
- }
-}
diff --git a/GameCode/DebugCoinDisplay.cs b/GameCode/DebugCoinDisplay.cs
deleted file mode 100644
index b2f021d..0000000
--- a/GameCode/DebugCoinDisplay.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class DebugCoinDisplay : MonoBehaviour
-{
- public TextMeshProUGUI target;
-
- private PlayerInteraction player;
-
- private void Start()
- {
- player = Object.FindObjectOfType<PlayerInteraction>();
- }
-
- private void Update()
- {
- target.text = player.Balance.ToString();
- }
-}
diff --git a/GameCode/DebugController.cs b/GameCode/DebugController.cs
deleted file mode 100644
index 878e6d7..0000000
--- a/GameCode/DebugController.cs
+++ /dev/null
@@ -1,133 +0,0 @@
-using UnityEngine;
-
-public class DebugController : MonoBehaviour
-{
- public enum SaveLoadMode
- {
- Normal,
- LoadEmptySaveFileOnStartup,
- LoadMaxedOutSaveFileOnStartup
- }
-
- [Tooltip("Set to -1 to disable")]
- public int startGameInWave = -1;
-
- public static DebugController instance;
-
- [SerializeField]
- private SaveLoadMode saveLoadMode;
-
- [SerializeField]
- private bool saveTheGame = true;
-
- public KeyCode addCoin = KeyCode.Alpha2;
-
- public KeyCode removeCoin = KeyCode.Alpha3;
-
- public KeyCode getPoints = KeyCode.Alpha4;
-
- public KeyCode upgradeAllBuildingsToMax = KeyCode.Alpha9;
-
- public KeyCode reviveAllYourUnits = KeyCode.Alpha6;
-
- public KeyCode killAllEnemyUnits = KeyCode.Alpha7;
-
- public KeyCode restartScene = KeyCode.R;
-
- public KeyCode spawnNextWave = KeyCode.T;
-
- public KeyCode goToLevelSelect = KeyCode.Escape;
-
- public KeyCode instaWinLevel = KeyCode.End;
-
- public KeyCode causeLagSpike = KeyCode.L;
-
- public KeyCode openTestChoice = KeyCode.C;
-
- public KeyCode softWinLevel = KeyCode.Alpha8;
-
- public KeyCode deletePlayerPrefs = KeyCode.Minus;
-
- public KeyCode killPlayer = KeyCode.K;
-
- public KeyCode enableDisableUI = KeyCode.KeypadMinus;
-
- private PlayerInteraction playerInteraction;
-
- private float muteClock;
-
- private bool muted;
-
- private float initMasterVol;
-
- public int StartGameInWave => -1;
-
- public static SaveLoadMode SaveLoadModeToUse
- {
- get
- {
- if (instance == null)
- {
- return SaveLoadMode.Normal;
- }
- _ = instance.enabled;
- return SaveLoadMode.Normal;
- }
- }
-
- public static bool SaveTheGame
- {
- get
- {
- if (instance == null)
- {
- return true;
- }
- _ = instance.enabled;
- return true;
- }
- }
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.gameObject);
- }
-
- public void EnableUICanvases()
- {
- NightCall.instance.gameObject.SetActive(value: true);
- UIFrameManager.instance.gameObject.SetActive(value: true);
- }
-
- private void Update()
- {
- }
-
- public void LogChoice(Choice _choice)
- {
- if (_choice != null)
- {
- Debug.Log(_choice.name);
- }
- else
- {
- Debug.Log("Choice cancelled.");
- }
- }
-
- public void Mute(float duration = 3f)
- {
- ThronefallAudioManager.Mute();
- muted = true;
- if (duration > muteClock)
- {
- muteClock = duration;
- }
- }
-}
diff --git a/GameCode/DemoQuitSwitch.cs b/GameCode/DemoQuitSwitch.cs
deleted file mode 100644
index 5f1f586..0000000
--- a/GameCode/DemoQuitSwitch.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using UnityEngine;
-
-public class DemoQuitSwitch : MonoBehaviour
-{
- public UIFrame demoFrame;
-
- public void Trigger()
- {
- UIFrameManager.instance.QuitToDesktop();
- }
-}
diff --git a/GameCode/DestroyAfter.cs b/GameCode/DestroyAfter.cs
deleted file mode 100644
index b3a705b..0000000
--- a/GameCode/DestroyAfter.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UnityEngine;
-
-public class DestroyAfter : MonoBehaviour
-{
- public float destroyAfter = 5f;
-
- private void Update()
- {
- destroyAfter -= Time.deltaTime;
- if (destroyAfter <= 0f)
- {
- Object.Destroy(base.gameObject);
- }
- }
-}
diff --git a/GameCode/DestroyOrDisableOnEnable.cs b/GameCode/DestroyOrDisableOnEnable.cs
deleted file mode 100644
index 5879f90..0000000
--- a/GameCode/DestroyOrDisableOnEnable.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using UnityEngine;
-
-public class DestroyOrDisableOnEnable : MonoBehaviour
-{
- [SerializeField]
- private Hp[] destroy;
-
- [SerializeField]
- private GameObject[] disable;
-
- private void OnEnable()
- {
- Hp[] array = destroy;
- foreach (Hp hp in array)
- {
- if (hp.gameObject.activeInHierarchy)
- {
- hp.TakeDamage(1E+09f);
- }
- }
- GameObject[] array2 = disable;
- for (int i = 0; i < array2.Length; i++)
- {
- array2[i].SetActive(value: false);
- }
- }
-}
diff --git a/GameCode/DisableOnStart.cs b/GameCode/DisableOnStart.cs
deleted file mode 100644
index 2a38cf4..0000000
--- a/GameCode/DisableOnStart.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-
-public class DisableOnStart : MonoBehaviour
-{
- private void Start()
- {
- base.gameObject.SetActive(value: false);
- }
-}
diff --git a/GameCode/EnableAllChildren.cs b/GameCode/EnableAllChildren.cs
deleted file mode 100644
index 6f13300..0000000
--- a/GameCode/EnableAllChildren.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using UnityEngine;
-
-public class EnableAllChildren : MonoBehaviour
-{
- private void Start()
- {
- for (int i = 0; i < base.transform.childCount; i++)
- {
- base.transform.GetChild(i).gameObject.SetActive(value: true);
- }
- }
-}
diff --git a/GameCode/EndOfMatchScoreUIHelper.cs b/GameCode/EndOfMatchScoreUIHelper.cs
deleted file mode 100644
index 607cd37..0000000
--- a/GameCode/EndOfMatchScoreUIHelper.cs
+++ /dev/null
@@ -1,636 +0,0 @@
-using System.Collections;
-using I2.Loc;
-using MPUIKIT;
-using Rewired;
-using TMPro;
-using UnityEngine;
-
-public class EndOfMatchScoreUIHelper : MonoBehaviour
-{
- [Header("Pre Frame")]
- public GameObject preFrameParent;
-
- public GameObject mainFrameParent;
-
- public GameObject preFrameVictory;
-
- public GameObject preFrameDefeat;
-
- public RectTransform preFrameMask;
-
- public CanvasGroup preFrameCG;
-
- public CanvasGroup mainFrameCG;
-
- public float preFrameMaskTargetHeight;
-
- public AnimationCurve preFrameMaskACCurve;
-
- public float preFrameAnimationTime = 0.75f;
-
- public float preFrameWaittime;
-
- public AudioSource audioSource;
-
- [Header("Main Frame")]
- public TextMeshProUGUI baseScore;
-
- public TextMeshProUGUI goldScore;
-
- public TextMeshProUGUI mutatorScore;
-
- public TextMeshProUGUI overallScore;
-
- public TextMeshProUGUI bestScore;
-
- public TextMeshProUGUI levelDisplay;
-
- public TextMeshProUGUI xpDisplay;
-
- public TextMeshProUGUI levelUpLevelDisplay;
-
- public TextMeshProUGUI levelUpRewardDescription;
-
- public TextMeshProUGUI victoryDisplay;
-
- public TextMeshProUGUI defeatDisplay;
-
- public TextMeshProUGUI baseScoreName;
-
- public TextMeshProUGUI goldBonusName;
-
- public TextMeshProUGUI MutatorBonusName;
-
- public GameObject victoryParent;
-
- public GameObject defeatParent;
-
- public GameObject newHighscoreIndicator;
-
- public GameObject progressionBarParent;
-
- public GameObject demoMaxLevel;
-
- public GameObject regularMaxLevel;
-
- public GameObject rewardWaitIndicator;
-
- public GameObject victoryButtons;
-
- public GameObject defeatButtons;
-
- public GameObject dividerParent;
-
- public GameObject progressionBarORMaxLevelParent;
-
- public GameObject progressionBarOnly;
-
- public GameObject nextPerk;
-
- public MPImageBasic xpFill;
-
- public MPImageBasic nextUnlockIcon;
-
- public MPImageBasic nextunlockBG;
-
- public MPImageBasic levelUpRewardIcon;
-
- public MPImageBasic levelUpRewardBg;
-
- public MPImageBasic rewardWaitFill;
-
- public Color weaponBG;
-
- public Color perkBG;
-
- public Color mutatorBG;
-
- public Color perkpointBG;
-
- public Color buildingUpgradeBG;
-
- public ThronefallUIElement victorySelectedButton;
-
- public ThronefallUIElement defeatSelectedButton;
-
- public ThronefallUIElement rewardAcceptButton;
-
- public UIFrame rewardFrame;
-
- public AnimationCurve popShowCurve;
-
- public AnimationCurve bumpCurve;
-
- public AnimationCurve scoreFillWiggle;
-
- [Header("Settings")]
- [SerializeField]
- private float timeToFillUpABar = 3f;
-
- [SerializeField]
- private float waitAtBeginning = 0.25f;
-
- [SerializeField]
- private float waitAfterFillingUpABar = 0.25f;
-
- [SerializeField]
- private float waitAfterReward = 2f;
-
- [SerializeField]
- private float waitWhenMaxLevelAlreadyReached = 0.5f;
-
- private MetaLevel nextMetaLevel;
-
- private PerkManager perkManager;
-
- private Player input;
-
- private UIFrame frame;
-
- private bool inAnimation;
-
- private bool inScoreUnroll;
-
- private int baseScoreThisRound;
-
- private int goldScoreThisRound;
-
- private int mutatorScoreThisRound;
-
- private int overallScoreThisRound;
-
- private int animationNextScore;
-
- private float defaultWaitStep = 0.5f;
-
- private float minorWaitStep = 0.25f;
-
- private float animationStepA = 1.5f;
-
- private float animationStepB = 0.5f;
-
- private bool skipScoringAnimation;
-
- private Coroutine currentScoringAnimation;
-
- private void Update()
- {
- if (input.GetButtonDown("Interact") && inScoreUnroll)
- {
- if (currentScoringAnimation != null)
- {
- StopCoroutine(currentScoringAnimation);
- }
- currentScoringAnimation = null;
- audioSource.Stop();
- skipScoringAnimation = true;
- inScoreUnroll = false;
- }
- }
-
- public void OnActivate()
- {
- if (!inAnimation)
- {
- inAnimation = true;
- inScoreUnroll = false;
- skipScoringAnimation = false;
- perkManager = PerkManager.instance;
- input = ReInput.players.GetPlayer(0);
- frame = GetComponent<UIFrame>();
- mainFrameParent.SetActive(value: false);
- preFrameParent.SetActive(value: true);
- preFrameMask.sizeDelta = new Vector2(preFrameMask.sizeDelta.x, 0f);
- preFrameCG.alpha = 0f;
- if (LocalGamestate.Instance.CurrentState == LocalGamestate.State.AfterMatchVictory)
- {
- preFrameVictory.SetActive(value: true);
- preFrameDefeat.SetActive(value: false);
- audioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.Victory);
- }
- else
- {
- preFrameVictory.SetActive(value: false);
- preFrameDefeat.SetActive(value: true);
- audioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.Defeat);
- }
- StartCoroutine(ActivateAnimation());
- }
- }
-
- public void OnContinue()
- {
- SceneTransitionManager.instance.TransitionFromEndScreenToLevelSelect();
- }
-
- public void OnTryAgain()
- {
- SceneTransitionManager.instance.RestartCurrentLevel();
- }
-
- private IEnumerator ActivateAnimation()
- {
- float preFrameTimer = 0f;
- while (preFrameTimer < preFrameAnimationTime)
- {
- preFrameTimer += Time.unscaledDeltaTime;
- float num = preFrameMaskACCurve.Evaluate(Mathf.InverseLerp(0f, preFrameAnimationTime, preFrameTimer));
- Vector2 sizeDelta = new Vector2(preFrameMask.sizeDelta.x, Mathf.Lerp(0f, preFrameMaskTargetHeight, num));
- preFrameMask.sizeDelta = sizeDelta;
- preFrameCG.alpha = num;
- yield return null;
- }
- preFrameMask.sizeDelta = new Vector2(preFrameMask.sizeDelta.x, preFrameMaskTargetHeight);
- preFrameCG.alpha = 1f;
- victoryDisplay.text = LocalizationManager.GetTranslation("Menu/Victory") + ".";
- defeatDisplay.text = LocalizationManager.GetTranslation("Menu/Defeat") + ".";
- if (LocalGamestate.Instance.CurrentState == LocalGamestate.State.AfterMatchDefeat)
- {
- victoryParent.SetActive(value: false);
- defeatParent.SetActive(value: true);
- }
- else
- {
- victoryParent.SetActive(value: true);
- defeatParent.SetActive(value: false);
- }
- baseScore.gameObject.SetActive(value: false);
- baseScoreName.gameObject.SetActive(value: false);
- goldScore.gameObject.SetActive(value: false);
- goldBonusName.gameObject.SetActive(value: false);
- mutatorScore.gameObject.SetActive(value: false);
- MutatorBonusName.gameObject.SetActive(value: false);
- dividerParent.SetActive(value: false);
- progressionBarORMaxLevelParent.SetActive(value: false);
- levelDisplay.gameObject.SetActive(value: false);
- newHighscoreIndicator.SetActive(value: false);
- victoryButtons.SetActive(value: false);
- defeatButtons.SetActive(value: false);
- demoMaxLevel.SetActive(value: false);
- regularMaxLevel.SetActive(value: false);
- progressionBarParent.SetActive(value: true);
- yield return new WaitForSecondsRealtime(preFrameWaittime);
- mainFrameCG.alpha = 0f;
- mainFrameParent.SetActive(value: true);
- float mainFrameFadeTimer = 0f;
- float fadeTime = 0.25f;
- while (mainFrameFadeTimer < fadeTime)
- {
- mainFrameFadeTimer += Time.unscaledDeltaTime;
- mainFrameCG.alpha = mainFrameFadeTimer / fadeTime;
- yield return null;
- }
- mainFrameCG.alpha = 1f;
- preFrameParent.SetActive(value: false);
- Time.timeScale = 0f;
- currentScoringAnimation = StartCoroutine(UnrollScores());
- while (currentScoringAnimation != null)
- {
- yield return null;
- }
- if (skipScoringAnimation)
- {
- SkipUnrollScores();
- }
- if (SceneTransitionManager.instance.TotalScoreFromLastMatchIsNewPersonalRecord)
- {
- newHighscoreIndicator.SetActive(value: true);
- yield return StartCoroutine(PopShowTransform(newHighscoreIndicator.transform, ThronefallAudioManager.Instance.audioContent.NewHighscore, popShowCurve, 0.5f));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- }
- else
- {
- newHighscoreIndicator.SetActive(value: false);
- }
- int xpToGive = SceneTransitionManager.instance.TotalScoreFromLastMatch;
- GetNextMetaLevel();
- if (nextMetaLevel != null)
- {
- UpdateLevelingBar();
- }
- levelDisplay.text = LocalizationManager.GetTranslation("Menu/Level") + " <style=\"Body Numerals\">" + perkManager.level;
- levelDisplay.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(levelDisplay.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- progressionBarORMaxLevelParent.SetActive(value: true);
- StartCoroutine(PopShowTransform(progressionBarORMaxLevelParent.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(defaultWaitStep);
- inAnimation = true;
- if (nextMetaLevel != null)
- {
- nextUnlockIcon.sprite = nextMetaLevel.reward.icon;
- nextunlockBG.color = GetColorForEquippable(nextMetaLevel.reward);
- UpdateLevelingBar();
- yield return StartCoroutine(FillUpXPBar(xpToGive));
- }
- else
- {
- yield return new WaitForSecondsRealtime(waitWhenMaxLevelAlreadyReached);
- }
- inAnimation = false;
- LevelProgressManager.instance.GetLevelDataForScene(SceneTransitionManager.instance.ComingFromGameplayScene).SaveScoreAndStatsToBestIfBest(_endOfMatch: true);
- SteamManager.Instance.UploadHighscore(SceneTransitionManager.instance.TotalScoreFromLastMatch, SceneTransitionManager.instance.ComingFromGameplayScene);
- SaveLoadManager.instance.SaveGame();
- if (LocalGamestate.Instance.CurrentState == LocalGamestate.State.AfterMatchDefeat)
- {
- defeatButtons.SetActive(value: true);
- frame.Select(defeatSelectedButton);
- }
- else
- {
- victoryButtons.SetActive(value: true);
- frame.Select(victorySelectedButton);
- }
- inAnimation = false;
- yield return null;
- }
-
- private void GetNextMetaLevel()
- {
- nextMetaLevel = perkManager.NextMetaLevel;
- if (nextMetaLevel == null)
- {
- EnableMaxLevelReachedUI();
- }
- }
-
- private void EnableMaxLevelReachedUI()
- {
- progressionBarParent.SetActive(value: false);
- regularMaxLevel.SetActive(value: true);
- AchievementManager.UnlockAchievement(AchievementManager.Achievements.MAXLEVEL_REACHED);
- }
-
- private void EnableDemoLockedUI()
- {
- progressionBarParent.SetActive(value: false);
- demoMaxLevel.SetActive(value: true);
- }
-
- private void EnableRewardDisplayUI()
- {
- levelUpLevelDisplay.text = LocalizationManager.GetTranslation("Menu/Level") + " <style=\"Body Numerals\">" + (1 + perkManager.level);
- levelUpRewardIcon.sprite = nextMetaLevel.reward.icon;
- levelUpRewardBg.color = GetColorForEquippable(nextMetaLevel.reward);
- levelUpRewardDescription.text = "<style=\"Header\"><size=30>" + LocalizationManager.GetTranslation(nextMetaLevel.reward.LOCIDENTIFIER_NAME) + "</style><style=\"Body Light\"><size=20>\n" + LocalizationManager.GetTranslation(nextMetaLevel.reward.LOCIDENTIFIER_DESCRIPTION);
- UIFrameManager.ShowLevelUpReward();
- }
-
- private void UpdateLevelingBar()
- {
- xpDisplay.text = perkManager.xp + " / " + nextMetaLevel.requiredXp;
- xpFill.fillAmount = (float)perkManager.xp / (float)nextMetaLevel.requiredXp;
- }
-
- private IEnumerator UnrollScores()
- {
- inScoreUnroll = true;
- baseScoreThisRound = SceneTransitionManager.instance.IngameScoreFromLastMatch;
- goldScoreThisRound = SceneTransitionManager.instance.GoldBonusScoreFromLastMatch;
- mutatorScoreThisRound = SceneTransitionManager.instance.MutatorBonusScoreFromLastMatch;
- overallScoreThisRound = 0;
- animationNextScore = 0;
- baseScore.text = baseScoreThisRound.ToString();
- goldScore.text = goldScoreThisRound.ToString();
- mutatorScore.text = mutatorScoreThisRound.ToString();
- overallScore.text = overallScoreThisRound.ToString();
- bestScore.text = SceneTransitionManager.instance.LevelDataFromLastMatch.highscoreBest.ToString();
- dividerParent.SetActive(value: true);
- StartCoroutine(PopShowTransform(dividerParent.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, popShowCurve, animationStepB));
- baseScoreName.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(baseScoreName.transform, null, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- baseScore.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(baseScore.transform, null, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- yield return AddToOverallScore(baseScoreThisRound, animationStepA);
- goldBonusName.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(goldBonusName.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- goldScore.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(goldScore.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildA, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- yield return AddToOverallScore(goldScoreThisRound, animationStepA);
- MutatorBonusName.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(MutatorBonusName.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- mutatorScore.gameObject.SetActive(value: true);
- StartCoroutine(PopShowTransform(mutatorScore.transform, ThronefallAudioManager.Instance.audioContent.PointScreenBuildA, popShowCurve, animationStepB));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- yield return AddToOverallScore(mutatorScoreThisRound, animationStepA);
- currentScoringAnimation = null;
- }
-
- private void SkipUnrollScores()
- {
- baseScoreThisRound = SceneTransitionManager.instance.IngameScoreFromLastMatch;
- goldScoreThisRound = SceneTransitionManager.instance.GoldBonusScoreFromLastMatch;
- mutatorScoreThisRound = SceneTransitionManager.instance.MutatorBonusScoreFromLastMatch;
- overallScoreThisRound = SceneTransitionManager.instance.TotalScoreFromLastMatch;
- baseScore.text = baseScoreThisRound.ToString();
- goldScore.text = goldScoreThisRound.ToString();
- mutatorScore.text = mutatorScoreThisRound.ToString();
- overallScore.text = overallScoreThisRound.ToString();
- newHighscoreIndicator.SetActive(SceneTransitionManager.instance.TotalScoreFromLastMatchIsNewPersonalRecord);
- bestScore.text = SceneTransitionManager.instance.LevelDataFromLastMatch.highscoreBest.ToString();
- dividerParent.SetActive(value: true);
- baseScoreName.gameObject.SetActive(value: true);
- baseScore.gameObject.SetActive(value: true);
- goldBonusName.gameObject.SetActive(value: true);
- goldScore.gameObject.SetActive(value: true);
- MutatorBonusName.gameObject.SetActive(value: true);
- mutatorScore.gameObject.SetActive(value: true);
- dividerParent.transform.localScale = Vector3.one;
- baseScoreName.transform.localScale = Vector3.one;
- baseScore.transform.localScale = Vector3.one;
- goldBonusName.transform.localScale = Vector3.one;
- goldScore.transform.localScale = Vector3.one;
- MutatorBonusName.transform.localScale = Vector3.one;
- mutatorScore.transform.localScale = Vector3.one;
- overallScore.transform.localScale = Vector3.one;
- StartCoroutine(LockInScoreBump(0.5f));
- }
-
- private IEnumerator AddToOverallScore(int scoreToAdd, float animTime)
- {
- if (scoreToAdd == 0)
- {
- yield return new WaitForSecondsRealtime(0.15f);
- yield break;
- }
- audioSource.clip = ThronefallAudioManager.Instance.audioContent.PointFill;
- audioSource.loop = true;
- audioSource.Play();
- animationNextScore += scoreToAdd;
- float timer = 0f;
- while (timer < animTime)
- {
- timer += Time.unscaledDeltaTime;
- overallScore.text = Mathf.RoundToInt(Mathf.Lerp(overallScoreThisRound, animationNextScore, Mathf.InverseLerp(0f, animTime, timer))).ToString();
- yield return null;
- }
- overallScoreThisRound = animationNextScore;
- overallScore.text = overallScoreThisRound.ToString();
- audioSource.Stop();
- audioSource.loop = false;
- yield return StartCoroutine(LockInScoreBump(0.5f));
- }
-
- private IEnumerator LockInScoreBump(float animTime)
- {
- audioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointLockInMajor, 0.85f);
- float timer = 0f;
- while (timer < animTime)
- {
- timer += Time.unscaledDeltaTime;
- overallScore.transform.localScale = Vector3.one * bumpCurve.Evaluate(Mathf.InverseLerp(0f, animTime, timer));
- yield return null;
- }
- overallScore.transform.localScale = Vector3.one;
- }
-
- private IEnumerator Bump(float animTime, Transform target, AudioClip clip)
- {
- if ((bool)clip)
- {
- audioSource.PlayOneShot(clip);
- }
- float timer = 0f;
- while (timer < animTime)
- {
- timer += Time.unscaledDeltaTime;
- target.transform.localScale = Vector3.one * bumpCurve.Evaluate(Mathf.InverseLerp(0f, animTime, timer));
- yield return null;
- }
- target.transform.localScale = Vector3.one;
- }
-
- private IEnumerator PopShowTransform(Transform target, AudioClip clip, AnimationCurve curve, float animTime)
- {
- if ((bool)clip)
- {
- audioSource.PlayOneShot(clip);
- }
- float timer = 0f;
- while (timer < animTime)
- {
- timer += Time.unscaledDeltaTime;
- target.localScale = Vector3.one * curve.Evaluate(Mathf.InverseLerp(0f, animTime, timer));
- yield return null;
- }
- target.localScale = Vector3.one;
- }
-
- private IEnumerator FillUpXPBar(int xp)
- {
- int xpToGive = xp;
- float xpFillSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
- _ = perkManager.xp;
- float xpFillFloat = perkManager.xp;
- audioSource.clip = ThronefallAudioManager.Instance.audioContent.PointFill;
- audioSource.loop = true;
- audioSource.Play();
- float progressionBarWiggleTime = 0f;
- while (xpToGive > 0 && nextMetaLevel != null)
- {
- if (!audioSource.isPlaying)
- {
- audioSource.Play();
- }
- progressionBarWiggleTime += Time.unscaledDeltaTime * 10f;
- progressionBarOnly.transform.localScale = Vector3.one * scoreFillWiggle.Evaluate(progressionBarWiggleTime);
- int num = nextMetaLevel.requiredXp - perkManager.xp;
- int num2;
- if (input.GetButtonDown("Interact") || nextMetaLevel == null)
- {
- num2 = xpToGive;
- }
- else
- {
- xpFillFloat += xpFillSpeed * Time.unscaledDeltaTime;
- num2 = Mathf.RoundToInt(xpFillFloat) - perkManager.xp;
- }
- if (num2 > num)
- {
- num2 = num;
- }
- perkManager.xp += num2;
- xpToGive -= num2;
- UpdateLevelingBar();
- if (nextMetaLevel != null && perkManager.xp >= nextMetaLevel.requiredXp)
- {
- audioSource.Stop();
- rewardAcceptButton.gameObject.SetActive(value: false);
- rewardWaitIndicator.SetActive(value: true);
- audioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.LevelUp);
- StartCoroutine(Bump(0.5f, nextPerk.transform, null));
- yield return new WaitForSecondsRealtime(0.5f);
- EnableRewardDisplayUI();
- perkManager.xp = 0;
- xpFillFloat = 0f;
- perkManager.UnlockedEquippables.Add(nextMetaLevel.reward);
- perkManager.level++;
- GetNextMetaLevel();
- float timer = 0f;
- while (timer < waitAfterReward && (timer == 0f || !input.GetButtonDown("Interact")))
- {
- timer += Time.unscaledDeltaTime;
- rewardWaitFill.fillAmount = timer / waitAfterReward;
- yield return null;
- }
- rewardAcceptButton.gameObject.SetActive(value: true);
- rewardWaitIndicator.SetActive(value: false);
- rewardFrame.Select(rewardAcceptButton);
- while (!frame.Interactable)
- {
- yield return null;
- }
- if (nextMetaLevel != null)
- {
- xpFillSpeed = (float)nextMetaLevel.requiredXp / timeToFillUpABar;
- levelDisplay.text = LocalizationManager.GetTranslation("Menu/Level") + " <style=\"Body Numerals\">" + perkManager.level;
- nextUnlockIcon.sprite = nextMetaLevel.reward.icon;
- nextunlockBG.color = GetColorForEquippable(nextMetaLevel.reward);
- }
- Time.timeScale = 0f;
- }
- yield return null;
- }
- progressionBarOnly.transform.localScale = Vector3.one;
- audioSource.Stop();
- audioSource.loop = false;
- StartCoroutine(Bump(animationStepB, progressionBarParent.transform, ThronefallAudioManager.Instance.audioContent.PointLockInMinor));
- yield return new WaitForSecondsRealtime(minorWaitStep);
- }
-
- private Color GetColorForEquippable(Equippable e)
- {
- Color white = Color.white;
- if (e is EquippableWeapon)
- {
- white = weaponBG;
- }
- if (e is EquippablePerk)
- {
- white = perkBG;
- }
- if (e is PerkPoint)
- {
- white = perkpointBG;
- }
- if (e is EquippableMutation)
- {
- white = mutatorBG;
- }
- if (e is EquippableBuildingUpgrade)
- {
- white = buildingUpgradeBG;
- }
- return white;
- }
-
- private void OnDisable()
- {
- inAnimation = false;
- }
-}
diff --git a/GameCode/EndOfMatchUI.cs b/GameCode/EndOfMatchUI.cs
deleted file mode 100644
index 2dac632..0000000
--- a/GameCode/EndOfMatchUI.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class EndOfMatchUI : MonoBehaviour
-{
- public GameObject victoryScreen;
-
- public GameObject defeatScreen;
-
- public TextMeshProUGUI scorePanel;
-
- private void Start()
- {
- victoryScreen.SetActive(value: false);
- defeatScreen.SetActive(value: false);
- scorePanel.gameObject.SetActive(value: false);
- if ((bool)LocalGamestate.Instance)
- {
- LocalGamestate.Instance.OnGameStateChange.AddListener(GamestateHasChanged);
- }
- }
-
- private void GamestateHasChanged()
- {
- switch (LocalGamestate.Instance.CurrentState)
- {
- case LocalGamestate.State.AfterMatchDefeat:
- defeatScreen.SetActive(value: true);
- scorePanel.gameObject.SetActive(value: true);
- scorePanel.text = "score: " + ScoreManager.Instance.CurrentScore;
- break;
- case LocalGamestate.State.AfterMatchVictory:
- victoryScreen.SetActive(value: true);
- scorePanel.gameObject.SetActive(value: true);
- scorePanel.text = "score: " + ScoreManager.Instance.CurrentScore;
- break;
- }
- }
-}
diff --git a/GameCode/EnemyScreenMarkerUIHelper.cs b/GameCode/EnemyScreenMarkerUIHelper.cs
deleted file mode 100644
index 4d79edf..0000000
--- a/GameCode/EnemyScreenMarkerUIHelper.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using MPUIKIT;
-using TMPro;
-using UnityEngine;
-
-public class EnemyScreenMarkerUIHelper : MonoBehaviour
-{
- public GameObject defaultMarkerParent;
-
- public MPImageBasic enemyIcon;
-
- public TextMeshProUGUI enemyNumber;
-
- public GameObject largeMarkerParent;
-
- public MPImageBasic largeEnemyIcon;
-
- public TextMeshProUGUI largeEnemyNumber;
-
- public Vector2 largeDimensions = new Vector2(112f, 112f);
-
- private Vector2 regularDimensions;
-
- private RectTransform ownRT;
-
- private SettingsManager settings;
-
- private void Start()
- {
- settings = SettingsManager.Instance;
- ownRT = GetComponent<RectTransform>();
- regularDimensions = ownRT.sizeDelta;
- }
-
- private void Update()
- {
- if (!(defaultMarkerParent == null) && !(largeMarkerParent == null))
- {
- if (settings.UseLargeInGameUI)
- {
- defaultMarkerParent.SetActive(value: false);
- largeMarkerParent.SetActive(value: true);
- largeEnemyIcon.sprite = enemyIcon.sprite;
- largeEnemyNumber.text = enemyNumber.text;
- ownRT.sizeDelta = largeDimensions;
- }
- else
- {
- defaultMarkerParent.SetActive(value: true);
- largeMarkerParent.SetActive(value: false);
- ownRT.sizeDelta = regularDimensions;
- }
- }
- }
-}
diff --git a/GameCode/EnemySpawnManager.cs b/GameCode/EnemySpawnManager.cs
deleted file mode 100644
index 9a6fc6f..0000000
--- a/GameCode/EnemySpawnManager.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class EnemySpawnManager : MonoBehaviour
-{
- public static EnemySpawnManager instance;
-
- public GameObject screenMarkerPrefabEnemySpawns;
-
- public GameObject screenMarkerPrefabOffscreenWarning;
-
- public Weapon weaponOnSpawn;
-
- public float weaponAttackHeight = 1f;
-
- private void Awake()
- {
- instance = this;
- }
-}
diff --git a/GameCode/EnemySpawner.cs b/GameCode/EnemySpawner.cs
deleted file mode 100644
index 92b85b8..0000000
--- a/GameCode/EnemySpawner.cs
+++ /dev/null
@@ -1,287 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class EnemySpawner : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- private PerkManager perkManager;
-
- private EnemySpawnManager enemySpawnManager;
-
- public static EnemySpawner instance;
-
- private TutorialManager tutorialManager;
-
- public int goldBalanceAtStart = 10;
-
- private bool spawningInProgress;
-
- public List<Wave> waves = new List<Wave>();
-
- private List<ScreenMarker> screenMarkersEnemySpawns = new List<ScreenMarker>();
-
- private List<ScreenMarker> screenMarkersOffscreenWarnings = new List<ScreenMarker>();
-
- private int wavenumber = -1;
-
- private float lastSpawnPeriodDuration;
-
- private bool treasureHunterActive;
-
- private bool cheeseGodActive;
-
- private bool diseaseGodActive;
-
- private float timeToNextHpDecrease = 2.1f;
-
- public bool SpawningInProgress => spawningInProgress;
-
- public int WaveCount => waves.Count;
-
- public int Wavenumber => wavenumber;
-
- public bool MatchOver
- {
- get
- {
- if (wavenumber >= waves.Count - 1)
- {
- return !SpawningInProgress;
- }
- return false;
- }
- }
-
- public bool LevelBeatenAsSoonAsWaveFinished => wavenumber > waves.Count - 2;
-
- public bool FinalWaveComingUp => wavenumber == waves.Count - 2;
-
- public bool PreFinalWaveComingUp => wavenumber == waves.Count - 3;
-
- public float LastSpawnPeriodDuration => lastSpawnPeriodDuration;
-
- public bool InfinitelySpawning { get; set; }
-
- public void DebugSkipWave()
- {
- StopSpawnAfterWaveAndReset();
- wavenumber++;
- }
-
- public void EnemySpawnersHornFocussed()
- {
- if ((bool)tutorialManager && !tutorialManager.MayShowEnemySpawn)
- {
- for (int i = 0; i < screenMarkersEnemySpawns.Count; i++)
- {
- screenMarkersEnemySpawns[i].showWhenOnScreen = false;
- screenMarkersEnemySpawns[i].showWhenOffScreen = false;
- }
- for (int j = 0; j < screenMarkersOffscreenWarnings.Count; j++)
- {
- screenMarkersOffscreenWarnings[j].showWhenOnScreen = false;
- screenMarkersOffscreenWarnings[j].showWhenOffScreen = false;
- }
- }
- else
- {
- for (int k = 0; k < screenMarkersEnemySpawns.Count; k++)
- {
- screenMarkersEnemySpawns[k].showWhenOnScreen = true;
- screenMarkersEnemySpawns[k].showWhenOffScreen = true;
- }
- for (int l = 0; l < screenMarkersOffscreenWarnings.Count; l++)
- {
- screenMarkersOffscreenWarnings[l].showWhenOnScreen = false;
- screenMarkersOffscreenWarnings[l].showWhenOffScreen = false;
- }
- }
- }
-
- public void EnemySpawnersHornUnFocussed()
- {
- if ((bool)tutorialManager && !tutorialManager.MayShowEnemySpawn)
- {
- for (int i = 0; i < screenMarkersEnemySpawns.Count; i++)
- {
- screenMarkersEnemySpawns[i].showWhenOnScreen = false;
- screenMarkersEnemySpawns[i].showWhenOffScreen = false;
- }
- for (int j = 0; j < screenMarkersOffscreenWarnings.Count; j++)
- {
- screenMarkersOffscreenWarnings[j].showWhenOnScreen = false;
- screenMarkersOffscreenWarnings[j].showWhenOffScreen = false;
- }
- }
- else
- {
- for (int k = 0; k < screenMarkersEnemySpawns.Count; k++)
- {
- screenMarkersEnemySpawns[k].showWhenOnScreen = true;
- screenMarkersEnemySpawns[k].showWhenOffScreen = true;
- }
- for (int l = 0; l < screenMarkersOffscreenWarnings.Count; l++)
- {
- screenMarkersOffscreenWarnings[l].showWhenOnScreen = false;
- screenMarkersOffscreenWarnings[l].showWhenOffScreen = false;
- }
- }
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- perkManager = PerkManager.instance;
- enemySpawnManager = EnemySpawnManager.instance;
- tutorialManager = TutorialManager.instance;
- EnemySpawnersHornUnFocussed();
- if ((bool)DayNightCycle.Instance)
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
- spawningInProgress = false;
- wavenumber = -1;
- if (DebugController.instance.StartGameInWave != -1)
- {
- wavenumber = DebugController.instance.StartGameInWave - 1;
- }
- PlayerMovement[] registeredPlayers = PlayerManager.Instance.RegisteredPlayers;
- for (int i = 0; i < registeredPlayers.Length; i++)
- {
- registeredPlayers[i].GetComponent<PlayerInteraction>().AddCoin(goldBalanceAtStart);
- }
- LevelProgressManager.instance.GetLevelDataForActiveScene()?.dayToDayNetworth.Add(goldBalanceAtStart);
- treasureHunterActive = PerkManager.instance.TreasureHunterActive;
- cheeseGodActive = PerkManager.instance.CheeseGodActive;
- if (cheeseGodActive)
- {
- for (int j = 0; j < Mathf.Min(3, waves.Count); j++)
- {
- foreach (Spawn spawn in waves[j].spawns)
- {
- spawn.count *= 2;
- }
- }
- }
- OnStartOfTheDay();
- }
-
- private void Update()
- {
- if (!spawningInProgress)
- {
- return;
- }
- lastSpawnPeriodDuration += Time.deltaTime;
- waves[wavenumber].Update();
- if (!waves[wavenumber].HasFinished())
- {
- return;
- }
- if (InfinitelySpawning)
- {
- if (TagManager.instance.CountAllTaggedObjectsWithTag(TagManager.ETag.EnemyOwned) > 0)
- {
- return;
- }
- {
- foreach (Spawn spawn in waves[wavenumber].spawns)
- {
- spawn.Reset(_resetGold: false);
- }
- return;
- }
- }
- StopSpawnAfterWaveAndReset();
- }
-
- public void OnStartOfTheDay()
- {
- if (wavenumber + 1 >= waves.Count)
- {
- return;
- }
- if (FinalWaveComingUp && treasureHunterActive)
- {
- PlayerMovement[] registeredPlayers = PlayerManager.Instance.RegisteredPlayers;
- for (int i = 0; i < registeredPlayers.Length; i++)
- {
- registeredPlayers[i].GetComponent<PlayerInteraction>().AddCoin(PerkManager.instance.treasureHunterGoldAmount);
- }
- }
- foreach (Spawn spawn in waves[wavenumber + 1].spawns)
- {
- Vector3 vector = (spawn.spawnLine.GetChild(0).position + spawn.spawnLine.GetChild(spawn.spawnLine.childCount - 1).position) / 2f;
- Sprite sprite = spawn.enemyPrefab.GetComponent<ScreenMarkerIcon>().sprite;
- ScreenMarker screenMarker = null;
- for (int j = 0; j < screenMarkersEnemySpawns.Count; j++)
- {
- if (!(screenMarkersEnemySpawns[j].Sprite != sprite) && !(screenMarkersEnemySpawns[j].transform.position != vector))
- {
- screenMarker = screenMarkersEnemySpawns[j];
- screenMarker.SetNumber(screenMarker.Number + spawn.count);
- }
- }
- if (!(screenMarker != null))
- {
- ScreenMarker component = Object.Instantiate(enemySpawnManager.screenMarkerPrefabEnemySpawns, vector, Quaternion.identity).GetComponent<ScreenMarker>();
- component.SetSprite(sprite);
- component.SetNumber(spawn.count);
- screenMarkersEnemySpawns.Add(component);
- }
- }
- EnemySpawnersHornUnFocussed();
- }
-
- public void OnStartOfTheNight()
- {
- for (int num = screenMarkersEnemySpawns.Count - 1; num >= 0; num--)
- {
- Object.Destroy(screenMarkersEnemySpawns[num].gameObject);
- }
- screenMarkersEnemySpawns.Clear();
- for (int num2 = screenMarkersOffscreenWarnings.Count - 1; num2 >= 0; num2--)
- {
- Object.Destroy(screenMarkersOffscreenWarnings[num2].gameObject);
- }
- screenMarkersOffscreenWarnings.Clear();
- StartSpawning();
- }
-
- public void StartSpawning()
- {
- if (!spawningInProgress)
- {
- lastSpawnPeriodDuration = 0f;
- wavenumber++;
- wavenumber = Mathf.Clamp(wavenumber, 0, waves.Count - 1);
- waves[wavenumber].Reset();
- spawningInProgress = true;
- }
- }
-
- public void StopSpawnAfterWaveAndReset()
- {
- if (spawningInProgress)
- {
- spawningInProgress = false;
- }
- }
-
- public void OnDusk()
- {
- OnStartOfTheNight();
- }
-
- public void OnDawn_AfterSunrise()
- {
- OnStartOfTheDay();
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-}
diff --git a/GameCode/EnumSelector.cs b/GameCode/EnumSelector.cs
deleted file mode 100644
index 8ad79be..0000000
--- a/GameCode/EnumSelector.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class EnumSelector : MonoBehaviour
-{
- public ThronefallUIElement target;
-
- public List<string> options = new List<string>();
-
- private int index;
-
- public bool delayedApply;
-
- public GameObject applyButton;
-
- public ThronefallUIElement.NavigationDirection increase;
-
- public ThronefallUIElement.NavigationDirection decrease = ThronefallUIElement.NavigationDirection.Left;
-
- public TextMeshProUGUI display;
-
- public GameObject buttons;
-
- public UnityEvent onChange = new UnityEvent();
-
- public UnityEvent onIncrease = new UnityEvent();
-
- public UnityEvent onDecrease = new UnityEvent();
-
- private bool unpropagatedChanges;
-
- private int bufferIndex;
-
- public int Index => index;
-
- private void Start()
- {
- target.onApply.AddListener(PropagateDelayedChange);
- target.onSelectionStateChange.AddListener(OnLinkedTFUINavigate);
- }
-
- private void UpdateDisplay()
- {
- if (unpropagatedChanges)
- {
- display.text = options[index] + "<style=Settings Warning> *</style>";
- if ((bool)applyButton)
- {
- applyButton.SetActive(value: true);
- }
- }
- else
- {
- display.text = options[index];
- if ((bool)applyButton)
- {
- applyButton.SetActive(value: false);
- }
- }
- }
-
- public void Navigate(ThronefallUIElement.NavigationDirection direction)
- {
- if (direction == increase)
- {
- onIncrease.Invoke();
- index++;
- }
- else if (direction == decrease)
- {
- index--;
- onDecrease.Invoke();
- }
- if (index > options.Count - 1)
- {
- index = 0;
- }
- if (index < 0)
- {
- index = options.Count - 1;
- }
- if (delayedApply && index != bufferIndex)
- {
- unpropagatedChanges = true;
- }
- else
- {
- unpropagatedChanges = false;
- }
- UpdateDisplay();
- if (!delayedApply)
- {
- ApplyChanges();
- }
- }
-
- public void Increase()
- {
- Navigate(increase);
- }
-
- public void Decrease()
- {
- Navigate(decrease);
- }
-
- public void OnTFUIStateChange()
- {
- if (target.CurrentState != 0)
- {
- buttons.SetActive(value: true);
- }
- else
- {
- buttons.SetActive(value: false);
- }
- }
-
- public void SetIndex(int i)
- {
- index = i;
- if (index > options.Count - 1)
- {
- index = 0;
- }
- if (index < 0)
- {
- index = options.Count - 1;
- }
- bufferIndex = index;
- UpdateDisplay();
- }
-
- public void OnLinkedTFUINavigate()
- {
- CancelChanges();
- }
-
- public void PropagateDelayedChange()
- {
- if (delayedApply)
- {
- ApplyChanges();
- }
- }
-
- private void ApplyChanges()
- {
- bufferIndex = index;
- onChange.Invoke();
- unpropagatedChanges = false;
- UpdateDisplay();
- }
-
- private void CancelChanges()
- {
- index = bufferIndex;
- unpropagatedChanges = false;
- UpdateDisplay();
- }
-}
diff --git a/GameCode/EnumSelectorButtonAnimation.cs b/GameCode/EnumSelectorButtonAnimation.cs
deleted file mode 100644
index 4cb6333..0000000
--- a/GameCode/EnumSelectorButtonAnimation.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using UnityEngine;
-
-public class EnumSelectorButtonAnimation : MonoBehaviour
-{
- public Transform decreaseB;
-
- public Transform increaseB;
-
- private void OnEnable()
- {
- decreaseB.localScale = Vector3.zero;
- increaseB.localScale = Vector3.zero;
- }
-}
diff --git a/GameCode/Equippable.cs b/GameCode/Equippable.cs
deleted file mode 100644
index 05b442d..0000000
--- a/GameCode/Equippable.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UnityEngine;
-
-public class Equippable : ScriptableObject
-{
- public Sprite icon;
-
- public string displayName;
-
- [TextArea]
- public string description;
-
- public string LOCIDENTIFIER_NAME => "Equippable/" + displayName;
-
- public string LOCIDENTIFIER_DESCRIPTION => LOCIDENTIFIER_NAME + " Description";
-}
diff --git a/GameCode/EquippableBuildingUpgrade.cs b/GameCode/EquippableBuildingUpgrade.cs
deleted file mode 100644
index 8120e18..0000000
--- a/GameCode/EquippableBuildingUpgrade.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Data", menuName = "SimpleSiege/Equippable Building Upgrade", order = 1)]
-public class EquippableBuildingUpgrade : Equippable
-{
-}
diff --git a/GameCode/EquippableMutation.cs b/GameCode/EquippableMutation.cs
deleted file mode 100644
index 5e3d0db..0000000
--- a/GameCode/EquippableMutation.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Data", menuName = "SimpleSiege/Equippable Mutation", order = 1)]
-public class EquippableMutation : Equippable
-{
- public float scoreMultiplyerOnWin = 1.2f;
-}
diff --git a/GameCode/EquippablePerk.cs b/GameCode/EquippablePerk.cs
deleted file mode 100644
index b3b5468..0000000
--- a/GameCode/EquippablePerk.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Data", menuName = "SimpleSiege/Equippable Perk", order = 1)]
-public class EquippablePerk : Equippable
-{
-}
diff --git a/GameCode/EquippableWeapon.cs b/GameCode/EquippableWeapon.cs
deleted file mode 100644
index 134c067..0000000
--- a/GameCode/EquippableWeapon.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Data", menuName = "SimpleSiege/Equippable Weapon", order = 1)]
-public class EquippableWeapon : Equippable
-{
-}
diff --git a/GameCode/FakeChildTo.cs b/GameCode/FakeChildTo.cs
deleted file mode 100644
index fe9d361..0000000
--- a/GameCode/FakeChildTo.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using UnityEngine;
-
-public class FakeChildTo : MonoBehaviour
-{
- [SerializeField]
- private Transform fakeParent;
-
- [SerializeField]
- private bool unparentAtStart = true;
-
- private Vector3 offset;
-
- private void Start()
- {
- offset = base.transform.localPosition;
- if (unparentAtStart)
- {
- base.transform.SetParent(null);
- }
- }
-
- private void Update()
- {
- if (!fakeParent)
- {
- Object.Destroy(base.gameObject);
- }
- else
- {
- base.transform.position = fakeParent.position + offset;
- }
- }
-}
diff --git a/GameCode/FakeTransorm.cs b/GameCode/FakeTransorm.cs
deleted file mode 100644
index 3202c80..0000000
--- a/GameCode/FakeTransorm.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-using UnityEngine;
-
-[Serializable]
-public class FakeTransorm
-{
- private Vector3 localPosition;
-
- private Vector3 localScale;
-
- private Quaternion localRotation;
-
- public FakeTransorm(Transform _transform)
- {
- SetToTransormValues(_transform);
- }
-
- public void SetToTransormValues(Transform _transform)
- {
- localPosition = _transform.localPosition;
- localScale = _transform.localScale;
- localRotation = _transform.localRotation;
- }
-
- public bool IsEqualTo(Transform _transform)
- {
- if (localPosition != _transform.localPosition)
- {
- return false;
- }
- if (localScale != _transform.localScale)
- {
- return false;
- }
- if (localRotation != _transform.localRotation)
- {
- return false;
- }
- return true;
- }
-}
diff --git a/GameCode/FireArcherBurn.cs b/GameCode/FireArcherBurn.cs
deleted file mode 100644
index 4f92b76..0000000
--- a/GameCode/FireArcherBurn.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class FireArcherBurn : MonoBehaviour
-{
- public ParticleSystem hotOilGround;
-
- public float hotOilGroundBurnTickDuration = 0.2f;
-
- public int hotOilGroundBurnTicks = 5;
-
- public float range = 3.5f;
-
- public List<DamageModifyer> damageModifyers = new List<DamageModifyer>();
-
- public List<TagManager.ETag> mustHaveTags;
-
- public List<TagManager.ETag> mayNotHaveTags;
-
- public float timeTillSelfDestroy = 5f;
-
- private TagManager tagManager;
-
- private List<TaggedObject> foundTaggedObjects = new List<TaggedObject>();
-
- private float timeTillTickEnds;
-
- private int ticksRemaining;
-
- private void Start()
- {
- tagManager = TagManager.instance;
- if (DamageTick())
- {
- timeTillTickEnds = hotOilGroundBurnTickDuration;
- ticksRemaining = hotOilGroundBurnTicks - 1;
- ParticleSystem.EmissionModule emission = hotOilGround.emission;
- emission.enabled = true;
- }
- }
-
- private void Update()
- {
- if (timeTillTickEnds > 0f)
- {
- timeTillTickEnds -= Time.deltaTime;
- if (timeTillTickEnds <= 0f)
- {
- ticksRemaining--;
- if (ticksRemaining < 0)
- {
- ParticleSystem.EmissionModule emission = hotOilGround.emission;
- emission.enabled = false;
- }
- else
- {
- DamageTick();
- timeTillTickEnds = hotOilGroundBurnTickDuration;
- }
- }
- }
- timeTillSelfDestroy -= Time.deltaTime;
- if (timeTillSelfDestroy <= 0f)
- {
- Object.Destroy(base.gameObject);
- }
- }
-
- private bool DamageTick()
- {
- bool result = false;
- tagManager.FindAllTaggedObjectsWithTags(foundTaggedObjects, mustHaveTags, mayNotHaveTags);
- for (int i = 0; i < foundTaggedObjects.Count; i++)
- {
- if (!(tagManager.MeasureDistanceToTaggedObject(foundTaggedObjects[i], base.transform.position) > range))
- {
- result = true;
- foundTaggedObjects[i].Hp.TakeDamage(DamageModifyer.CalculateDamageOnTarget(foundTaggedObjects[i], damageModifyers) / (float)hotOilGroundBurnTicks);
- }
- }
- return result;
- }
-}
diff --git a/GameCode/FishingHarbour.cs b/GameCode/FishingHarbour.cs
deleted file mode 100644
index 2214867..0000000
--- a/GameCode/FishingHarbour.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class FishingHarbour : IncomeModifyer
-{
- public int incomeIncreasePerTurn = 1;
-
- public int maximumIncome = 5;
-
- private int maximumBoats;
-
- public Transform activeChildOnIncomeIncrease;
-
- private int activationNr;
-
- [Header("Perk Upgrade")]
- [SerializeField]
- private Equippable perk;
-
- [SerializeField]
- private int additionalBoatCapacity;
-
- private void Start()
- {
- buildingInteractor.IncomeModifiers.Add(this);
- for (int i = 0; i < activeChildOnIncomeIncrease.childCount; i++)
- {
- activeChildOnIncomeIncrease.GetChild(i).gameObject.SetActive(value: false);
- }
- if (PerkManager.instance.CurrentlyEquipped.Contains(perk))
- {
- maximumIncome += additionalBoatCapacity;
- }
- maximumBoats = maximumIncome;
- }
-
- public override void OnDawn()
- {
- if (buildSlot.Level > 0 && !buildingInteractor.KnockedOutTonight)
- {
- StartCoroutine(IncreaseIncomeAndBuildShip());
- }
- }
-
- private IEnumerator IncreaseIncomeAndBuildShip()
- {
- yield return null;
- yield return null;
- if (activationNr < maximumBoats)
- {
- activeChildOnIncomeIncrease.GetChild(activationNr).gameObject.SetActive(value: true);
- }
- activationNr++;
- buildSlot.GoldIncome = Mathf.Min(buildSlot.GoldIncome + incomeIncreasePerTurn, maximumIncome);
- buildSlot.Upgrades[1].upgradeBranches[0].goldIncomeChange = buildSlot.GoldIncome;
- buildSlot.Interactor.MarkAsHarvested();
- }
-}
diff --git a/GameCode/FishingHarbourUpgrade.cs b/GameCode/FishingHarbourUpgrade.cs
deleted file mode 100644
index f8cc3ee..0000000
--- a/GameCode/FishingHarbourUpgrade.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using UnityEngine;
-
-public class FishingHarbourUpgrade : MonoBehaviour
-{
- [SerializeField]
- private FishingHarbour fishingHarbour;
-
- private void OnEnable()
- {
- fishingHarbour.maximumIncome *= 2;
- fishingHarbour.incomeIncreasePerTurn *= 2;
- Object.Destroy(this);
- Object.Destroy(base.gameObject);
- }
-}
diff --git a/GameCode/ForceCameraPosOnEnable.cs b/GameCode/ForceCameraPosOnEnable.cs
deleted file mode 100644
index 859dcff..0000000
--- a/GameCode/ForceCameraPosOnEnable.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using UnityEngine;
-
-public class ForceCameraPosOnEnable : MonoBehaviour
-{
- [SerializeField]
- private CameraRig cameraRig;
-
- [SerializeField]
- private Transform forcedPosition;
-
- [SerializeField]
- private float duration;
-
- private void Update()
- {
- if (duration >= 0f)
- {
- cameraRig.overrideCameraTarget = forcedPosition;
- duration -= Time.deltaTime;
- }
- else
- {
- cameraRig.overrideCameraTarget = null;
- Object.Destroy(this);
- }
- }
-}
diff --git a/GameCode/FromToAnimation.cs b/GameCode/FromToAnimation.cs
deleted file mode 100644
index 29807cc..0000000
--- a/GameCode/FromToAnimation.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class FromToAnimation : OneShotAnimationBase
-{
- public AnimationCurve curve;
-
- public float duration = 0.75f;
-
- public Vector3 eulerTargetRotation;
-
- public Transform transformToAnimate;
-
- private Quaternion initialRotation;
-
- private Quaternion targetRotation;
-
- private void Start()
- {
- initialRotation = transformToAnimate.localRotation;
- targetRotation = Quaternion.Euler(eulerTargetRotation.x, eulerTargetRotation.y, eulerTargetRotation.z);
- }
-
- private IEnumerator Animate()
- {
- transformToAnimate.localRotation = initialRotation;
- float timer = 0f;
- while (timer < duration)
- {
- transformToAnimate.localRotation = Quaternion.Lerp(initialRotation, targetRotation, curve.Evaluate(timer / duration));
- timer += Time.deltaTime;
- yield return null;
- }
- transformToAnimate.localRotation = Quaternion.Lerp(initialRotation, targetRotation, curve.Evaluate(1f));
- }
-
- public override void Trigger()
- {
- if (base.gameObject.activeInHierarchy)
- {
- StopAllCoroutines();
- StartCoroutine(Animate());
- }
- }
-}
diff --git a/GameCode/GPUInstanced.cs b/GameCode/GPUInstanced.cs
deleted file mode 100644
index 46c4d3e..0000000
--- a/GameCode/GPUInstanced.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using UnityEngine;
-
-public class GPUInstanced : MonoBehaviour
-{
- private MeshRenderer mr;
-
- private GPUInstancingManager gpui;
-
- private bool started;
-
- private bool eenabled;
-
- private Mesh mesh;
-
- private Material mat;
-
- private void Start()
- {
- if (mr == null)
- {
- mr = GetComponent<MeshRenderer>();
- }
- if (mr == null)
- {
- Object.Destroy(this);
- return;
- }
- if (gpui == null)
- {
- gpui = GPUInstancingManager.Instance;
- }
- if (gpui == null)
- {
- Object.Destroy(this);
- return;
- }
- mesh = mr.GetComponent<MeshFilter>().sharedMesh;
- mat = mr.sharedMaterial;
- if (eenabled)
- {
- mr.enabled = false;
- gpui.AddVirtualMeshRenderer(mesh, mat, base.transform);
- }
- started = true;
- }
-
- private void OnEnable()
- {
- eenabled = true;
- if (started)
- {
- mr.enabled = false;
- gpui.AddVirtualMeshRenderer(mesh, mat, base.transform);
- }
- }
-
- private void OnDisable()
- {
- eenabled = false;
- if (started)
- {
- gpui.RemoveVirtualMeshRenderer(mesh, mat, base.transform);
- }
- }
-
- public void OnMeshOrMaterialUpdate(Mesh newMesh, Material newMat)
- {
- if (newMesh != mesh || newMat != mat)
- {
- gpui.UpdateVirtualMeshRenderer(mesh, mat, newMesh, newMat, base.transform);
- mesh = newMesh;
- mat = newMat;
- }
- }
-
- private void Update()
- {
- OnMeshOrMaterialUpdate(mesh, mr.sharedMaterial);
- }
-}
diff --git a/GameCode/GPUInstancingManager.cs b/GameCode/GPUInstancingManager.cs
deleted file mode 100644
index 99d9dab..0000000
--- a/GameCode/GPUInstancingManager.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class GPUInstancingManager : MonoBehaviour
-{
- private struct MaterialMeshPair
- {
- public Material material;
-
- public Mesh mesh;
- }
-
- private struct TransformMatrixPair
- {
- public List<Transform> transforms;
-
- public List<Matrix4x4> matrices;
- }
-
- public static GPUInstancingManager Instance;
-
- [Tooltip("Do not change this during runtime!")]
- [SerializeField]
- private bool gpuInstancingEnabled = true;
-
- [SerializeField]
- private bool debugLogs;
-
- private Dictionary<MaterialMeshPair, TransformMatrixPair> matMeshPairToRenderersDictionary;
-
- private List<Matrix4x4> transformMatricesBuffer = new List<Matrix4x4>();
-
- private void Awake()
- {
- if (gpuInstancingEnabled)
- {
- Instance = this;
- }
- else
- {
- Instance = null;
- }
- matMeshPairToRenderersDictionary = new Dictionary<MaterialMeshPair, TransformMatrixPair>();
- }
-
- private void Update()
- {
- int num = 0;
- int num2 = 0;
- foreach (KeyValuePair<MaterialMeshPair, TransformMatrixPair> item in matMeshPairToRenderersDictionary)
- {
- TransformMatrixPair value = item.Value;
- for (int i = 0; i < value.transforms.Count; i++)
- {
- if (value.transforms[i] != null)
- {
- value.matrices[i] = value.transforms[i].localToWorldMatrix;
- }
- }
- if (value.matrices.Count >= 1024)
- {
- Debug.LogWarning("Drawing too many meshes with mesh: " + item.Key.mesh.ToString());
- }
- try
- {
- Graphics.DrawMeshInstanced(item.Key.mesh, 0, item.Key.material, value.matrices);
- }
- catch
- {
- Debug.LogError("GPU instancing with material failed: " + item.Key.material.ToString());
- }
- num += value.transforms.Count;
- num2++;
- }
- }
-
- public void AddVirtualMeshRenderer(Mesh mesh, Material material, Transform transform)
- {
- MaterialMeshPair key = default(MaterialMeshPair);
- key.material = material;
- key.mesh = mesh;
- if (!matMeshPairToRenderersDictionary.TryGetValue(key, out var value))
- {
- TransformMatrixPair transformMatrixPair = default(TransformMatrixPair);
- transformMatrixPair.transforms = new List<Transform>();
- transformMatrixPair.matrices = new List<Matrix4x4>();
- value = transformMatrixPair;
- matMeshPairToRenderersDictionary[key] = value;
- }
- value.transforms.Add(transform);
- value.matrices.Add(transform.localToWorldMatrix);
- }
-
- public void RemoveVirtualMeshRenderer(Mesh mesh, Material material, Transform transform)
- {
- MaterialMeshPair key = default(MaterialMeshPair);
- key.material = material;
- key.mesh = mesh;
- if (matMeshPairToRenderersDictionary.TryGetValue(key, out var value))
- {
- int num = value.transforms.IndexOf(transform);
- if (num != -1)
- {
- value.transforms.RemoveAt(num);
- value.matrices.RemoveAt(num);
- }
- if (value.transforms.Count == 0)
- {
- matMeshPairToRenderersDictionary.Remove(key);
- }
- }
- }
-
- public void UpdateVirtualMeshRenderer(Mesh oldMesh, Material oldMaterial, Mesh newMesh, Material newMaterial, Transform transform)
- {
- RemoveVirtualMeshRenderer(oldMesh, oldMaterial, transform);
- AddVirtualMeshRenderer(newMesh, newMaterial, transform);
- }
-}
diff --git a/GameCode/GateOpener.cs b/GameCode/GateOpener.cs
deleted file mode 100644
index 31d79a4..0000000
--- a/GameCode/GateOpener.cs
+++ /dev/null
@@ -1,172 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class GateOpener : MonoBehaviour
-{
- public enum Mode
- {
- Door,
- Bars
- }
-
- public float openDistance = 5f;
-
- public float clearDistance = 10f;
-
- public Mode mode;
-
- public Transform doorL;
-
- public Transform doorR;
-
- public float maxAngle;
-
- public Transform bars;
-
- public Vector3 openPositionOffset = new Vector3(0f, -3.6f, 0f);
-
- public float animationTime = 1f;
-
- private bool open;
-
- private List<TagManager.ETag> tagList = new List<TagManager.ETag>(new TagManager.ETag[2]
- {
- TagManager.ETag.Player,
- TagManager.ETag.PlayerUnit
- });
-
- private float openAnimationClock;
-
- private IReadOnlyList<TaggedObject> playerUnits;
-
- private IReadOnlyList<TaggedObject> players;
-
- private Vector3 doorLInitRotation;
-
- private Vector3 doorRInitRotation;
-
- private Vector3 barsInitPosition;
-
- private bool isDoor => mode == Mode.Door;
-
- private bool isBars => mode == Mode.Bars;
-
- private void Start()
- {
- if ((bool)doorL)
- {
- doorLInitRotation = doorL.rotation.eulerAngles;
- }
- if ((bool)doorR)
- {
- doorRInitRotation = doorR.rotation.eulerAngles;
- }
- if ((bool)bars)
- {
- barsInitPosition = bars.transform.position;
- }
- if (!TagManager.instance)
- {
- Debug.LogError("No Tag Manager in scene.");
- return;
- }
- playerUnits = TagManager.instance.PlayerUnits;
- players = TagManager.instance.Players;
- }
-
- private void Update()
- {
- if (!TagManager.instance)
- {
- return;
- }
- if (open)
- {
- bool flag = true;
- foreach (TaggedObject playerUnit in TagManager.instance.PlayerUnits)
- {
- if (playerUnit.gameObject.activeInHierarchy && Vector3.Distance(base.transform.position, playerUnit.transform.position) <= clearDistance && playerUnit.Tags.Contains(TagManager.ETag.AUTO_Alive) && !(Vector3.Distance(playerUnit.transform.position, playerUnit.GetComponent<PathfindMovementPlayerunit>().HomePosition) < 0.5f))
- {
- flag = false;
- break;
- }
- }
- foreach (TaggedObject player in players)
- {
- if (player.gameObject.activeInHierarchy && Vector3.Distance(base.transform.position, player.transform.position) <= openDistance && player.Tags.Contains(TagManager.ETag.AUTO_Alive))
- {
- flag = false;
- }
- }
- if (flag)
- {
- Close();
- }
- }
- else
- {
- foreach (TaggedObject playerUnit2 in playerUnits)
- {
- if (playerUnit2.gameObject.activeInHierarchy && Vector3.Distance(base.transform.position, playerUnit2.transform.position) <= openDistance && playerUnit2.Tags.Contains(TagManager.ETag.AUTO_Alive) && !(Vector3.Distance(playerUnit2.transform.position, playerUnit2.GetComponent<PathfindMovementPlayerunit>().HomePosition) < 0.5f))
- {
- Open();
- return;
- }
- }
- foreach (TaggedObject player2 in players)
- {
- if (player2.gameObject.activeInHierarchy && Vector3.Distance(base.transform.position, player2.transform.position) <= openDistance && player2.Tags.Contains(TagManager.ETag.AUTO_Alive))
- {
- Open();
- }
- }
- }
- if (open && openAnimationClock < animationTime)
- {
- openAnimationClock += Time.deltaTime;
- if (openAnimationClock > animationTime)
- {
- openAnimationClock = animationTime;
- }
- }
- else if (!open && openAnimationClock > 0f)
- {
- openAnimationClock -= Time.deltaTime;
- if (openAnimationClock < 0f)
- {
- openAnimationClock = 0f;
- }
- }
- switch (mode)
- {
- case Mode.Door:
- {
- float num = Mathf.SmoothStep(0f, maxAngle, openAnimationClock / animationTime);
- doorL.rotation = Quaternion.Euler(doorLInitRotation + Vector3.forward * num);
- doorR.rotation = Quaternion.Euler(doorRInitRotation + Vector3.forward * (0f - num));
- break;
- }
- case Mode.Bars:
- bars.transform.position = Vector3.Slerp(barsInitPosition, barsInitPosition + openPositionOffset, openAnimationClock / animationTime);
- break;
- }
- }
-
- private void Close()
- {
- open = false;
- }
-
- private void Open()
- {
- open = true;
- }
-
- private void OnDrawGizmosSelected()
- {
- Gizmos.color = Color.yellow;
- Gizmos.DrawWireSphere(base.transform.position, openDistance);
- Gizmos.color = Color.red;
- Gizmos.DrawWireSphere(base.transform.position, clearDistance);
- }
-}
diff --git a/GameCode/GlobalAudioListener.cs b/GameCode/GlobalAudioListener.cs
deleted file mode 100644
index 28a5019..0000000
--- a/GameCode/GlobalAudioListener.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using UnityEngine;
-
-public class GlobalAudioListener : MonoBehaviour
-{
- public static GlobalAudioListener instance;
-
- private PlayerInteraction bufferedPlayerInteraction;
-
- private Transform bufferedTargetTransform;
-
- private Vector3 offset = new Vector3(0f, 2f, 0f);
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.gameObject);
- }
-
- private void Update()
- {
- PlayerInteraction playerInteraction = PlayerInteraction.instance;
- if (bufferedPlayerInteraction != playerInteraction)
- {
- if (playerInteraction == null)
- {
- bufferedTargetTransform = null;
- }
- else
- {
- bufferedTargetTransform = playerInteraction.transform;
- }
- }
- if (bufferedTargetTransform != null)
- {
- base.transform.position = bufferedTargetTransform.position + offset;
- }
- else
- {
- base.transform.position = Vector3.zero;
- }
- bufferedPlayerInteraction = playerInteraction;
- }
-}
diff --git a/GameCode/GraphDrawer.cs b/GameCode/GraphDrawer.cs
deleted file mode 100644
index 4776cdd..0000000
--- a/GameCode/GraphDrawer.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class GraphDrawer : MonoBehaviour
-{
- public enum Type
- {
- Networth,
- Score
- }
-
- public Type type;
-
- private List<int> current;
-
- private List<int> oldBest;
-
- [SerializeField]
- private Color colorCurrent;
-
- [SerializeField]
- private Color colorOldBest;
-
- [SerializeField]
- private GameObject graphMarkersPrefab;
-
- [SerializeField]
- private GameObject graphSclaeMarkerPrefab;
-
- [SerializeField]
- private RectTransform graphSurface;
-
- private int xMaxScale;
-
- private int yMaxScale;
-
- private float width;
-
- private float height;
-
- private float wspacing;
-
- public void Generate(string _comingFromScene)
- {
- LevelData levelDataForScene = LevelProgressManager.instance.GetLevelDataForScene(_comingFromScene);
- if (type == Type.Networth)
- {
- current = levelDataForScene.dayToDayNetworth;
- oldBest = levelDataForScene.dayToDayNetworthBest;
- }
- else if (type == Type.Score)
- {
- current = levelDataForScene.dayToDayScore;
- oldBest = levelDataForScene.dayToDayScoreBest;
- }
- xMaxScale = Mathf.Max(oldBest.Count, current.Count);
- width = graphSurface.rect.width;
- height = graphSurface.rect.height;
- if (xMaxScale > 1)
- {
- wspacing = width / (float)(xMaxScale - 1);
- }
- else
- {
- wspacing = 0f;
- }
- yMaxScale = 1;
- for (int i = 0; i < oldBest.Count; i++)
- {
- yMaxScale = Mathf.Max(yMaxScale, oldBest[i]);
- }
- for (int j = 0; j < current.Count; j++)
- {
- yMaxScale = Mathf.Max(yMaxScale, current[j]);
- }
- GameObject gameObject = Object.Instantiate(graphSclaeMarkerPrefab, graphSurface);
- gameObject.transform.localPosition = new Vector3((0f - width) / 2f, (0f - height) / 2f);
- gameObject.GetComponentInChildren<TMP_Text>().text = "0";
- gameObject = Object.Instantiate(graphSclaeMarkerPrefab, graphSurface);
- gameObject.transform.localPosition = new Vector3((0f - width) / 2f, height / 2f);
- if (yMaxScale < 1000)
- {
- gameObject.GetComponentInChildren<TMP_Text>().text = yMaxScale.ToString();
- }
- else
- {
- int num = Mathf.FloorToInt((float)yMaxScale / 1000f);
- int num2 = Mathf.FloorToInt((float)yMaxScale / 100f) - num * 10;
- gameObject.GetComponentInChildren<TMP_Text>().text = num + "." + num2 + "K";
- }
- PlotList(oldBest, colorOldBest);
- PlotList(current, colorCurrent);
- }
-
- private void PlotList(List<int> _list, Color _color)
- {
- if (_list.Count <= 0)
- {
- return;
- }
- Vector3 vector = Vector3.zero;
- for (int i = 0; i < _list.Count; i++)
- {
- float x = (float)i * wspacing - width / 2f;
- float y = (float)_list[i] / (float)yMaxScale * height - height / 2f;
- Vector3 vector2 = new Vector3(x, y, 0f);
- if (i > 0 || _list.Count <= 1)
- {
- GameObject obj = Object.Instantiate(graphMarkersPrefab, graphSurface);
- RectTransform component = obj.GetComponent<RectTransform>();
- component.localPosition = vector2;
- obj.GetComponent<Image>().color = _color;
- if (i > 0)
- {
- component.localPosition = (vector + vector2) / 2f;
- component.localScale = new Vector3((vector - vector2).magnitude / component.rect.width, component.localScale.y, component.localScale.z);
- component.localRotation = Quaternion.Euler(0f, 0f, Vector2.SignedAngle(Vector2.right, vector - vector2));
- }
- }
- vector = vector2;
- }
- }
-}
diff --git a/GameCode/HealBoostMA.cs b/GameCode/HealBoostMA.cs
deleted file mode 100644
index 48cdbbb..0000000
--- a/GameCode/HealBoostMA.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using UnityEngine;
-
-public class HealBoostMA : ManualAttack
-{
- public float attackSpeedBoost = 20f;
-
- public ManualAttack manualAttackToBoost;
-
- public ParticleSystem boostParticles;
-
- public float attackSpeedDuration = 2f;
-
- public float timeToFillUpHealth = 3f;
-
- public float attackSpeedDurationWhenLowHealth = 4f;
-
- private float disableBoostIn;
-
- private float attackSpeedOriginal;
-
- public override void Start()
- {
- base.Start();
- }
-
- public override void Attack()
- {
- attackSpeedOriginal = manualAttackToBoost.cooldownTime;
- manualAttackToBoost.cooldownTime /= attackSpeedBoost;
- ParticleSystem.EmissionModule emission = boostParticles.emission;
- emission.enabled = true;
- disableBoostIn = attackSpeedDuration;
- if (hpPlayer.HpPercentage <= 0.33f)
- {
- disableBoostIn = attackSpeedDurationWhenLowHealth;
- }
- }
-
- public override void Update()
- {
- base.Update();
- disableBoostIn -= Time.deltaTime;
- if (disableBoostIn > 0f)
- {
- hpPlayer.Heal(hpPlayer.maxHp * Time.deltaTime / timeToFillUpHealth);
- cooldown = cooldownTime;
- }
- if (disableBoostIn + Time.deltaTime > 0f && disableBoostIn <= Time.deltaTime)
- {
- manualAttackToBoost.cooldownTime = attackSpeedOriginal;
- ParticleSystem.EmissionModule emission = boostParticles.emission;
- emission.enabled = false;
- }
- }
-}
diff --git a/GameCode/Healthbar.cs b/GameCode/Healthbar.cs
deleted file mode 100644
index e8e63e6..0000000
--- a/GameCode/Healthbar.cs
+++ /dev/null
@@ -1,172 +0,0 @@
-using MPUIKIT;
-using UnityEngine;
-
-public class Healthbar : MonoBehaviour
-{
- [SerializeField]
- protected GameObject canvasParent;
-
- [SerializeField]
- protected MPImageBasic fill;
-
- [SerializeField]
- protected MPImageBasic delayedFill;
-
- [SerializeField]
- protected Hp target;
-
- [SerializeField]
- protected Color deathFillColor;
-
- [SerializeField]
- private bool flashWhenBelowThreshold;
-
- [SerializeField]
- [Range(0f, 1f)]
- private float flashThreshhold;
-
- [SerializeField]
- private float flashInterval = 0.25f;
-
- [SerializeField]
- private Color flashColor;
-
- [SerializeField]
- private MPImageBasic flashTarget;
-
- [SerializeField]
- private float damageFlashSize = 1.2f;
-
- protected Color defaultDelayedFillColor;
-
- protected float hpLast;
-
- private float hpNow;
-
- private float damageFlash;
-
- private bool shouldUnparentAndDestroyOnDeath;
-
- private Color flashDefaultColor;
-
- private float flashClock;
-
- private readonly float finalDrainSpeed = 0.5f;
-
- private readonly float maxDrainSpeed = 1f;
-
- private readonly float minDrainSpeed = 0.1f;
-
- private void Start()
- {
- target.OnHpChange.AddListener(UpdateDisplay);
- defaultDelayedFillColor = delayedFill.color;
- UpdateDisplay();
- delayedFill.fillAmount = fill.fillAmount;
- hpLast = 1f;
- shouldUnparentAndDestroyOnDeath = !target.getsKnockedOutInsteadOfDying;
- if (shouldUnparentAndDestroyOnDeath)
- {
- target.OnKillOrKnockout.AddListener(UnparentItself);
- }
- if (flashWhenBelowThreshold)
- {
- flashDefaultColor = flashTarget.color;
- }
- }
-
- private void Update()
- {
- hpNow = fill.fillAmount;
- bool flag = Mathf.Approximately(hpNow, 0f);
- if (!Mathf.Approximately(hpNow, delayedFill.fillAmount))
- {
- if (!flag)
- {
- delayedFill.fillAmount = Mathf.MoveTowards(delayedFill.fillAmount, fill.fillAmount, Mathf.Lerp(minDrainSpeed, maxDrainSpeed, delayedFill.fillAmount - fill.fillAmount) * Time.deltaTime);
- }
- else
- {
- delayedFill.fillAmount = Mathf.MoveTowards(delayedFill.fillAmount, fill.fillAmount, Mathf.Lerp(finalDrainSpeed, maxDrainSpeed, delayedFill.fillAmount - fill.fillAmount) * Time.deltaTime);
- }
- }
- if (hpNow < hpLast)
- {
- damageFlash = 2f;
- }
- if (flag && delayedFill.fillAmount < 0.01f)
- {
- if (shouldUnparentAndDestroyOnDeath)
- {
- Object.Destroy(base.gameObject);
- }
- else
- {
- canvasParent.SetActive(value: false);
- base.enabled = false;
- }
- }
- if (flashWhenBelowThreshold)
- {
- if (hpNow <= flashThreshhold && hpNow > 0f)
- {
- flashClock -= Time.deltaTime;
- if (flashClock <= 0f)
- {
- flashClock = flashInterval;
- if (flashTarget.color == flashColor)
- {
- flashTarget.color = flashDefaultColor;
- }
- else
- {
- flashTarget.color = flashColor;
- }
- }
- }
- else if (flashTarget.color != flashDefaultColor)
- {
- flashTarget.color = flashDefaultColor;
- flashClock = 0f;
- }
- else
- {
- flashClock = 0f;
- }
- }
- float num = Mathf.Lerp(1f, damageFlashSize, damageFlash);
- base.transform.localScale = new Vector3(num, num, num);
- damageFlash *= Mathf.Pow(0.1f, Time.deltaTime * 3f);
- hpLast = hpNow;
- }
-
- public virtual void UpdateDisplay()
- {
- if (target.HpPercentage == 1f)
- {
- canvasParent.SetActive(value: false);
- base.enabled = false;
- hpLast = 1f;
- delayedFill.fillAmount = hpLast;
- }
- else
- {
- canvasParent.SetActive(value: true);
- base.enabled = true;
- }
- fill.fillAmount = target.HpPercentage;
- if (Mathf.Approximately(fill.fillAmount, 0f))
- {
- delayedFill.color = deathFillColor;
- }
- else
- {
- delayedFill.color = defaultDelayedFillColor;
- }
- }
-
- private void UnparentItself()
- {
- base.transform.SetParent(null);
- }
-}
diff --git a/GameCode/HealthbarMulti.cs b/GameCode/HealthbarMulti.cs
deleted file mode 100644
index 8cfd05a..0000000
--- a/GameCode/HealthbarMulti.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using UnityEngine;
-
-public class HealthbarMulti : Healthbar
-{
- [SerializeField]
- private int segments = 10;
-
- [SerializeField]
- private Transform lifes;
-
- public override void UpdateDisplay()
- {
- float fillAmount = target.HpPercentage * (float)segments % 1f;
- _ = target.HpPercentage * (float)segments % 1f;
- int num = Mathf.FloorToInt(target.HpPercentage / (1f / (float)segments));
- for (int i = 0; i < lifes.childCount; i++)
- {
- lifes.GetChild(i).gameObject.SetActive(num > i);
- }
- if (target.invulnerable)
- {
- fillAmount = 1f;
- }
- if (target.HpPercentage == 1f)
- {
- canvasParent.SetActive(value: false);
- base.enabled = false;
- hpLast = 1f;
- delayedFill.fillAmount = hpLast;
- }
- else
- {
- canvasParent.SetActive(value: true);
- base.enabled = true;
- }
- fill.fillAmount = fillAmount;
- if (Mathf.Approximately(fill.fillAmount, 0f))
- {
- delayedFill.color = deathFillColor;
- }
- else
- {
- delayedFill.color = defaultDelayedFillColor;
- }
- }
-}
diff --git a/GameCode/HighscorePreviewUI.cs b/GameCode/HighscorePreviewUI.cs
deleted file mode 100644
index d8983f9..0000000
--- a/GameCode/HighscorePreviewUI.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System.Collections.Generic;
-using I2.Loc;
-using Steamworks;
-using TMPro;
-using UnityEngine;
-
-public class HighscorePreviewUI : MonoBehaviour
-{
- public TMP_Text highscore;
-
- public TMP_Text friendsRank;
-
- private bool subscribedToSteamManager;
-
- private readonly string lightTextCue = "<style=Body Light>";
-
- private void OnEnable()
- {
- int highscoreBest = LevelProgressManager.instance.GetLevelDataForScene(LevelInteractor.lastActivatedLevelInteractor.sceneName).highscoreBest;
- string text = ((highscoreBest != 0) ? highscoreBest.ToString() : "-");
- highscore.text = LocalizationManager.GetTranslation("Menu/Highscore") + ": " + lightTextCue + text;
- friendsRank.text = LocalizationManager.GetTranslation("Menu/Friends Rank") + ": " + lightTextCue + "-";
- SubscribeToSteamManger();
- SteamManager.Instance.DownloadFriendsHighscores(LevelInteractor.lastActivatedLevelInteractor.sceneName);
- }
-
- private void SubscribeToSteamManger()
- {
- if (!subscribedToSteamManager)
- {
- SteamManager.Instance.OnLeaderboardDownloadCallbackComplete.AddListener(RefreshUI);
- subscribedToSteamManager = true;
- }
- }
-
- public void RefreshUI()
- {
- friendsRank.text = LocalizationManager.GetTranslation("Menu/Friends Rank") + ": " + lightTextCue;
- List<SteamManager.LeaderboardEntry> lastDownloadedLeaderboardEntires = SteamManager.Instance.lastDownloadedLeaderboardEntires;
- if (lastDownloadedLeaderboardEntires.Count > 0)
- {
- int num = 0;
- int num2 = 1;
- foreach (SteamManager.LeaderboardEntry item in lastDownloadedLeaderboardEntires)
- {
- if (item.username == SteamFriends.GetPersonaName())
- {
- num = num2;
- break;
- }
- num2++;
- }
- if (num == 0)
- {
- friendsRank.text += "-";
- return;
- }
- TMP_Text tMP_Text = friendsRank;
- tMP_Text.text = tMP_Text.text + "#" + num;
- }
- else
- {
- friendsRank.text += "-";
- }
- }
-}
diff --git a/GameCode/HighscoreTable.cs b/GameCode/HighscoreTable.cs
deleted file mode 100644
index fbfdc4c..0000000
--- a/GameCode/HighscoreTable.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System.Collections.Generic;
-using Steamworks;
-using UnityEngine;
-
-public class HighscoreTable : MonoBehaviour
-{
- private ScoreTag[] scoreTags = new ScoreTag[0];
-
- private string currentHighscoreTableToCall = "";
-
- public Transform scoreTagParent;
-
- public GameObject loading;
-
- public GameObject notConnectedToSteam;
-
- public GameObject noScore;
-
- public GameObject noFriends;
-
- private bool subscribedToSteamManager;
-
- public void SetAndDownloadHighscoreTable(string _highscoreTableName)
- {
- noScore.SetActive(value: false);
- noFriends.SetActive(value: false);
- currentHighscoreTableToCall = _highscoreTableName;
- scoreTags = new ScoreTag[scoreTagParent.childCount];
- for (int i = 0; i < scoreTagParent.childCount; i++)
- {
- scoreTags[i] = scoreTagParent.GetChild(i).GetComponent<ScoreTag>();
- scoreTagParent.GetChild(i).gameObject.SetActive(value: false);
- }
- if (SteamManager.Initialized)
- {
- SubscribeToSteamManger();
- SteamManager.Instance.DownloadFriendsHighscores(currentHighscoreTableToCall);
- loading.SetActive(value: true);
- notConnectedToSteam.SetActive(value: false);
- }
- else
- {
- loading.SetActive(value: false);
- notConnectedToSteam.SetActive(value: true);
- }
- }
-
- private void OnEnable()
- {
- SetAndDownloadHighscoreTable(LevelInteractor.lastActivatedLevelInteractor.sceneName);
- }
-
- private void SubscribeToSteamManger()
- {
- if (!subscribedToSteamManager)
- {
- SteamManager.Instance.OnLeaderboardDownloadCallbackComplete.AddListener(RefreshUI);
- subscribedToSteamManager = true;
- }
- }
-
- private void RefreshUI()
- {
- for (int i = 0; i < scoreTags.Length; i++)
- {
- scoreTags[i].gameObject.SetActive(value: false);
- }
- List<SteamManager.LeaderboardEntry> lastDownloadedLeaderboardEntires = SteamManager.Instance.lastDownloadedLeaderboardEntires;
- if (lastDownloadedLeaderboardEntires.Count > 0)
- {
- loading.SetActive(value: false);
- notConnectedToSteam.SetActive(value: false);
- bool flag = false;
- foreach (SteamManager.LeaderboardEntry item in lastDownloadedLeaderboardEntires)
- {
- if (item.username == SteamFriends.GetPersonaName())
- {
- flag = true;
- break;
- }
- }
- noScore.SetActive(!flag);
- noFriends.SetActive(lastDownloadedLeaderboardEntires.Count == 1 && flag);
- }
- else
- {
- loading.SetActive(value: false);
- notConnectedToSteam.SetActive(value: false);
- noScore.SetActive(value: true);
- noFriends.SetActive(value: true);
- }
- for (int j = 0; j < lastDownloadedLeaderboardEntires.Count && j <= scoreTags.Length - 1; j++)
- {
- bool isPlayer = lastDownloadedLeaderboardEntires[j].username == SteamFriends.GetPersonaName();
- scoreTags[j].gameObject.SetActive(value: true);
- scoreTags[j].SetNameAndScore(lastDownloadedLeaderboardEntires[j].username, lastDownloadedLeaderboardEntires[j].score, j + 1, isPlayer);
- }
- }
-}
diff --git a/GameCode/HotOilTower.cs b/GameCode/HotOilTower.cs
deleted file mode 100644
index 375a4e5..0000000
--- a/GameCode/HotOilTower.cs
+++ /dev/null
@@ -1,97 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class HotOilTower : MonoBehaviour
-{
- public ParticleSystem hotOilGround;
-
- public float hotOilGroundBurnTickDuration = 0.2f;
-
- public int hotOilGroundBurnTicks = 5;
-
- public float attackCooldown = 5f;
-
- public float checkRate = 1f;
-
- public float range = 3.5f;
-
- public List<DamageModifyer> damageModifyers = new List<DamageModifyer>();
-
- public List<TagManager.ETag> mustHaveTags;
-
- public List<TagManager.ETag> mayNotHaveTags;
-
- private float cooldown;
-
- private TagManager tagManager;
-
- private List<TaggedObject> foundTaggedObjects = new List<TaggedObject>();
-
- private float timeTillTickEnds;
-
- private int ticksRemaining;
-
- private void Start()
- {
- cooldown = Random.value;
- tagManager = TagManager.instance;
- }
-
- public void ReduceCooldownBy(float _reduceBy)
- {
- cooldown -= _reduceBy;
- }
-
- private void Update()
- {
- cooldown -= Time.deltaTime;
- if (timeTillTickEnds > 0f)
- {
- timeTillTickEnds -= Time.deltaTime;
- if (timeTillTickEnds <= 0f)
- {
- ticksRemaining--;
- if (ticksRemaining < 0)
- {
- ParticleSystem.EmissionModule emission = hotOilGround.emission;
- emission.enabled = false;
- }
- else
- {
- DamageTick();
- timeTillTickEnds = hotOilGroundBurnTickDuration;
- }
- }
- }
- if (cooldown <= 0f)
- {
- if (DamageTick())
- {
- cooldown = attackCooldown;
- timeTillTickEnds = hotOilGroundBurnTickDuration;
- ticksRemaining = hotOilGroundBurnTicks - 1;
- ParticleSystem.EmissionModule emission2 = hotOilGround.emission;
- emission2.enabled = true;
- }
- else
- {
- cooldown = checkRate;
- }
- }
- }
-
- private bool DamageTick()
- {
- bool result = false;
- tagManager.FindAllTaggedObjectsWithTags(foundTaggedObjects, mustHaveTags, mayNotHaveTags);
- for (int i = 0; i < foundTaggedObjects.Count; i++)
- {
- if (!(tagManager.MeasureDistanceToTaggedObject(foundTaggedObjects[i], base.transform.position) > range))
- {
- result = true;
- foundTaggedObjects[i].Hp.TakeDamage(DamageModifyer.CalculateDamageOnTarget(foundTaggedObjects[i], damageModifyers) / (float)hotOilGroundBurnTicks);
- }
- }
- return result;
- }
-}
diff --git a/GameCode/Hp.cs b/GameCode/Hp.cs
deleted file mode 100644
index d28b16f..0000000
--- a/GameCode/Hp.cs
+++ /dev/null
@@ -1,375 +0,0 @@
-using System.Collections.Generic;
-using Pathfinding;
-using Pathfinding.RVO;
-using UnityEngine;
-using UnityEngine.Events;
-
-[RequireComponent(typeof(TaggedObject))]
-public class Hp : MonoBehaviour
-{
- public float maxHp;
-
- public bool getsKnockedOutInsteadOfDying;
-
- private float hp;
-
- private TaggedObject taggedObject;
-
- [Tooltip("The hight where enemies aim at and where hit indicators are spawned")]
- public float hitFeedbackHeight;
-
- [Tooltip("This child object is enabled when this unit is alive.")]
- public GameObject aliveVisuals;
-
- [Tooltip("This child object is enabled when this unit is knocked out.")]
- public GameObject knockedOutVisuals;
-
- public GameObject fxToSpawnOnDeath;
-
- public Vector3 deathFxSpawnOffset;
-
- public Transform deathFxSpawnWithPosAndRotOf;
-
- [HideInInspector]
- public UnityEvent OnHpChange = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent OnRevive = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent OnHeal = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent<bool> OnReceiveDamage = new UnityEvent<bool>();
-
- [HideInInspector]
- public UnityEvent OnKillOrKnockout = new UnityEvent();
-
- private AutoAttack[] autoAttacks;
-
- private ManualAttack[] manualAttacks;
-
- private PathfindMovement pathfindMovement;
-
- private RVOController rvoController;
-
- private PlayerMovement playerMovement;
-
- private NavmeshCut[] navmeshCut;
-
- private PlayerInteraction playerInteraction;
-
- public GameObject coin;
-
- public float coinSpawnOffset;
-
- public int coinCount;
-
- [SerializeField]
- private Weapon spwanAttackOnDeath;
-
- private float damageMultiplyer = 1f;
-
- private float healingMultiplyer = 1f;
-
- public bool invulnerable;
-
- public float HpValue => hp;
-
- public float HpPercentage => hp / maxHp;
-
- public bool KnockedOut => hp <= 0f;
-
- public TaggedObject TaggedObj => taggedObject;
-
- public PathfindMovement PathfindMovement => pathfindMovement;
-
- public Weapon SpwanAttackOnDeath
- {
- get
- {
- return spwanAttackOnDeath;
- }
- set
- {
- spwanAttackOnDeath = value;
- }
- }
-
- public float DamageMultiplyer
- {
- get
- {
- return damageMultiplyer;
- }
- set
- {
- damageMultiplyer = value;
- }
- }
-
- public void ScaleHp(float _multiply)
- {
- hp *= _multiply;
- maxHp *= _multiply;
- }
-
- private void Start()
- {
- playerInteraction = GetComponent<PlayerInteraction>();
- taggedObject = GetComponent<TaggedObject>();
- autoAttacks = GetComponents<AutoAttack>();
- manualAttacks = GetComponents<ManualAttack>();
- pathfindMovement = GetComponent<PathfindMovement>();
- rvoController = GetComponent<RVOController>();
- playerMovement = GetComponent<PlayerMovement>();
- navmeshCut = GetComponentsInChildren<NavmeshCut>();
- taggedObject.AddTag(TagManager.ETag.AUTO_Alive);
- Revive(callReviveEvent: false);
- ActivateAndDeactivateChildrenAndCompements(_alive: true);
- if (PerkManager.instance.HealingSpiritsActive && (bool)taggedObject && taggedObject.Tags.Contains(TagManager.ETag.PlayerOwned))
- {
- healingMultiplyer *= PerkManager.instance.healingSpirits_healMulti;
- }
- }
-
- private void ActivateAndDeactivateChildrenAndCompements(bool _alive)
- {
- if ((bool)aliveVisuals)
- {
- aliveVisuals.SetActive(_alive);
- }
- if ((bool)knockedOutVisuals)
- {
- knockedOutVisuals.SetActive(!_alive);
- }
- if (autoAttacks.Length != 0)
- {
- AutoAttack[] array = autoAttacks;
- for (int i = 0; i < array.Length; i++)
- {
- array[i].enabled = _alive;
- }
- }
- if (manualAttacks.Length != 0)
- {
- ManualAttack[] array2 = manualAttacks;
- for (int i = 0; i < array2.Length; i++)
- {
- array2[i].enabled = _alive;
- }
- }
- if ((bool)pathfindMovement)
- {
- pathfindMovement.enabled = _alive;
- if (!_alive)
- {
- pathfindMovement.ClearCurrentPath();
- }
- }
- if ((bool)rvoController)
- {
- rvoController.enabled = _alive;
- }
- if ((bool)playerMovement)
- {
- playerMovement.enabled = _alive;
- }
- NavmeshCut[] array3 = navmeshCut;
- for (int i = 0; i < array3.Length; i++)
- {
- array3[i].enabled = _alive;
- }
- if ((bool)playerInteraction)
- {
- playerInteraction.enabled = _alive;
- }
- }
-
- public void Revive(bool callReviveEvent = true, float healthPercentage = 1f)
- {
- if (hp <= 0f)
- {
- if (callReviveEvent)
- {
- OnRevive.Invoke();
- }
- taggedObject.RemoveTag(TagManager.ETag.AUTO_KnockedOutAndHealOnDawn);
- taggedObject.AddTag(TagManager.ETag.AUTO_Alive);
- ActivateAndDeactivateChildrenAndCompements(_alive: true);
- hp = 0f;
- }
- else if (hp < maxHp)
- {
- OnHeal.Invoke();
- }
- hp += maxHp * healthPercentage;
- if (hp > maxHp)
- {
- hp = maxHp;
- }
- OnHpChange.Invoke();
- }
-
- public bool TakeDamage(float _amount, TaggedObject _damageComingFrom = null, bool causedByPlayer = false, bool invokeFeedbackEvents = true)
- {
- if (hp <= 0f)
- {
- return false;
- }
- if (invulnerable)
- {
- return false;
- }
- if (_amount <= 0f)
- {
- Heal(0f - _amount);
- return false;
- }
- if ((bool)pathfindMovement)
- {
- pathfindMovement.GetAgroFromObject(_damageComingFrom);
- }
- hp -= _amount;
- OnHpChange.Invoke();
- if (invokeFeedbackEvents)
- {
- OnReceiveDamage.Invoke(causedByPlayer);
- }
- if (hp <= 0f)
- {
- OnKillOrKnockout.Invoke();
- if ((bool)fxToSpawnOnDeath)
- {
- if ((bool)deathFxSpawnWithPosAndRotOf)
- {
- Object.Instantiate(fxToSpawnOnDeath, deathFxSpawnWithPosAndRotOf.position + deathFxSpawnOffset, deathFxSpawnWithPosAndRotOf.rotation, null);
- }
- else
- {
- Object.Instantiate(fxToSpawnOnDeath, base.transform.position + deathFxSpawnOffset, fxToSpawnOnDeath.transform.rotation, null);
- }
- }
- if (getsKnockedOutInsteadOfDying)
- {
- taggedObject.RemoveTag(TagManager.ETag.AUTO_Alive);
- taggedObject.AddTag(TagManager.ETag.AUTO_KnockedOutAndHealOnDawn);
- ActivateAndDeactivateChildrenAndCompements(_alive: false);
- }
- else
- {
- Object.Destroy(base.gameObject);
- if ((bool)coin)
- {
- for (int i = 0; i < coinCount; i++)
- {
- if (i > 1)
- {
- Object.Instantiate(coin, base.transform.position + Vector3.up * coinSpawnOffset + Quaternion.Euler(0f, 45f * (float)i, 0f) * Vector3.forward * 2f, Quaternion.identity);
- }
- else
- {
- Object.Instantiate(coin, base.transform.position + Vector3.up * coinSpawnOffset, Quaternion.identity);
- }
- }
- }
- }
- if ((bool)spwanAttackOnDeath)
- {
- spwanAttackOnDeath.Attack(base.transform.position, null, Vector3.zero, taggedObject, damageMultiplyer);
- }
- return true;
- }
- return false;
- }
-
- public void Heal(float _amount)
- {
- if (!(hp <= 0f) && !(_amount <= 0f))
- {
- hp += _amount * healingMultiplyer;
- if (hp > maxHp)
- {
- hp = maxHp;
- }
- OnHpChange.Invoke();
- }
- }
-
- public static void ReviveAllUnitsWithTag(List<TagManager.ETag> _mustHaveTags, List<TagManager.ETag> _mayNotHaveTags, float _healthPercentage = 1f)
- {
- List<TaggedObject> list = new List<TaggedObject>();
- TagManager.instance.FindAllTaggedObjectsWithTags(list, _mustHaveTags, _mayNotHaveTags);
- for (int i = 0; i < list.Count; i++)
- {
- list[i].Hp.Revive(callReviveEvent: true, _healthPercentage);
- }
- }
-
- public static void MarkDestroyedBuildingsAsDontRevive(List<TagManager.ETag> _mustHaveTags, List<TagManager.ETag> _mayNotHaveTags, float _healthPercentage = 1f)
- {
- List<TaggedObject> list = new List<TaggedObject>();
- TagManager.instance.FindAllTaggedObjectsWithTags(list, _mustHaveTags, _mayNotHaveTags);
- for (int i = 0; i < list.Count; i++)
- {
- if (list[i].Tags.Contains(TagManager.ETag.AUTO_KnockedOutAndHealOnDawn))
- {
- list[i].GetComponentInParent<BuildSlot>().Interactor.OnKnockOut();
- if (!list[i].Tags.Contains(TagManager.ETag.AUTO_NoReviveNextMorning))
- {
- list[i].Tags.Add(TagManager.ETag.AUTO_NoReviveNextMorning);
- }
- else
- {
- list[i].Tags.Remove(TagManager.ETag.AUTO_NoReviveNextMorning);
- }
- }
- }
- }
-
- public static void KillAllUnitsWithTag(List<TagManager.ETag> _mustHaveTags, List<TagManager.ETag> _mayNotHaveTags)
- {
- List<TaggedObject> list = new List<TaggedObject>();
- TagManager.instance.FindAllTaggedObjectsWithTags(list, _mustHaveTags, _mayNotHaveTags);
- for (int i = 0; i < list.Count; i++)
- {
- list[i].Hp.TakeDamage(float.MaxValue);
- }
- }
-
- public static void ReviveAllKnockedOutPlayerUnitsAndBuildings()
- {
- if (!PerkManager.instance.DestructionGodActive)
- {
- List<TagManager.ETag> list = new List<TagManager.ETag>();
- List<TagManager.ETag> list2 = new List<TagManager.ETag>();
- list.Add(TagManager.ETag.PlayerOwned);
- list2.Add(TagManager.ETag.AUTO_NoReviveNextMorning);
- ReviveAllUnitsWithTag(list, list2);
- return;
- }
- List<TagManager.ETag> list3 = new List<TagManager.ETag>();
- List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
- list3.Add(TagManager.ETag.PlayerOwned);
- list3.Add(TagManager.ETag.Building);
- MarkDestroyedBuildingsAsDontRevive(list3, mayNotHaveTags);
- List<TagManager.ETag> list4 = new List<TagManager.ETag>();
- mayNotHaveTags = new List<TagManager.ETag>();
- list4.Add(TagManager.ETag.PlayerOwned);
- mayNotHaveTags.Add(TagManager.ETag.Building);
- mayNotHaveTags.Add(TagManager.ETag.AUTO_NoReviveNextMorning);
- ReviveAllUnitsWithTag(list4, mayNotHaveTags);
- mayNotHaveTags.Clear();
- mayNotHaveTags.Add(TagManager.ETag.AUTO_NoReviveNextMorning);
- list4.Add(TagManager.ETag.Building);
- ReviveAllUnitsWithTag(list4, mayNotHaveTags, 0.33f);
- }
-
- public static void KillAllEnemyUnits()
- {
- List<TagManager.ETag> list = new List<TagManager.ETag>();
- List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
- list.Add(TagManager.ETag.EnemyOwned);
- KillAllUnitsWithTag(list, mayNotHaveTags);
- }
-}
diff --git a/GameCode/InGameResignUIHelper.cs b/GameCode/InGameResignUIHelper.cs
deleted file mode 100644
index 6f85c9e..0000000
--- a/GameCode/InGameResignUIHelper.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using UnityEngine;
-
-public class InGameResignUIHelper : MonoBehaviour
-{
- public void Resign()
- {
- UIFrameManager.instance.CloseAllFrames();
- LocalGamestate.Instance.SetState(LocalGamestate.State.AfterMatchDefeat, forceTransition: false, immediate: true);
- }
-}
diff --git a/GameCode/IncomeModifyer.cs b/GameCode/IncomeModifyer.cs
deleted file mode 100644
index d8a523c..0000000
--- a/GameCode/IncomeModifyer.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using UnityEngine;
-
-public class IncomeModifyer : MonoBehaviour
-{
- public BuildSlot buildSlot;
-
- public BuildingInteractor buildingInteractor;
-
- private void Start()
- {
- buildingInteractor.IncomeModifiers.Add(this);
- }
-
- public virtual void OnDawn()
- {
- }
-}
diff --git a/GameCode/InteractorBase.cs b/GameCode/InteractorBase.cs
deleted file mode 100644
index 3c503c3..0000000
--- a/GameCode/InteractorBase.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using UnityEngine;
-
-public abstract class InteractorBase : MonoBehaviour
-{
- public virtual bool CanBeInteractedWith => true;
-
- public virtual string ReturnTooltip()
- {
- return "";
- }
-
- public virtual void InteractionBegin(PlayerInteraction player)
- {
- }
-
- public virtual void InteractionHold(PlayerInteraction player)
- {
- }
-
- public virtual void InteractionEnd(PlayerInteraction player)
- {
- }
-
- public abstract void Focus(PlayerInteraction player);
-
- public abstract void Unfocus(PlayerInteraction player);
-}
diff --git a/GameCode/Invulnerable.cs b/GameCode/Invulnerable.cs
deleted file mode 100644
index 9a7857c..0000000
--- a/GameCode/Invulnerable.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using UnityEngine;
-
-public class Invulnerable : MonoBehaviour
-{
- private Hp hp;
-
- private void Start()
- {
- hp = GetComponent<Hp>();
- }
-
- private void Update()
- {
- hp.Heal(1000000f);
- }
-}
diff --git a/GameCode/KeepRelativeRotationTo.cs b/GameCode/KeepRelativeRotationTo.cs
deleted file mode 100644
index 94dbe16..0000000
--- a/GameCode/KeepRelativeRotationTo.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using UnityEngine;
-
-public class KeepRelativeRotationTo : MonoBehaviour
-{
- [SerializeField]
- private Transform transformToKeepRelativeRotationTo;
-
- [SerializeField]
- private Vector3 upVector = Vector3.up;
-
- private Quaternion initialOffset;
-
- private Vector3 selfPosition;
-
- private Vector3 otherPosition;
-
- private Quaternion localRotationStart;
-
- private Vector3 upVectorAdjusted;
-
- private void PrepareData()
- {
- if ((bool)base.transform.parent)
- {
- selfPosition = base.transform.localPosition;
- otherPosition = base.transform.parent.worldToLocalMatrix.MultiplyPoint(transformToKeepRelativeRotationTo.position);
- upVectorAdjusted = upVector;
- }
- else
- {
- selfPosition = base.transform.position;
- otherPosition = transformToKeepRelativeRotationTo.position;
- upVectorAdjusted = upVector;
- }
- }
-
- private void Start()
- {
- if ((bool)base.transform.parent)
- {
- upVector = base.transform.localToWorldMatrix.MultiplyVector(upVector);
- upVector = base.transform.parent.localToWorldMatrix.MultiplyVector(upVector);
- upVector = upVector.normalized;
- }
- localRotationStart = base.transform.localRotation;
- PrepareData();
- initialOffset = Quaternion.Inverse(Quaternion.LookRotation(otherPosition - selfPosition, upVectorAdjusted));
- }
-
- private void Update()
- {
- if ((bool)transformToKeepRelativeRotationTo)
- {
- PrepareData();
- Quaternion quaternion = Quaternion.LookRotation(otherPosition - selfPosition, upVectorAdjusted);
- base.transform.localRotation = quaternion * initialOffset * localRotationStart;
- }
- }
-}
diff --git a/GameCode/KeyframedBoss.cs b/GameCode/KeyframedBoss.cs
deleted file mode 100644
index da32b2f..0000000
--- a/GameCode/KeyframedBoss.cs
+++ /dev/null
@@ -1,178 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class KeyframedBoss : MonoBehaviour
-{
- [SerializeField]
- private HealthbarMulti hpBarMulti;
-
- [SerializeField]
- private Hp hp;
-
- [SerializeField]
- private Transform stratKeyframe;
-
- [SerializeField]
- private Transform cutsceneKeyframe;
-
- [SerializeField]
- private float cutsceneHoldPosition = 4f;
-
- [SerializeField]
- private Transform[] mainKeyframes;
-
- [SerializeField]
- private Transform[] transitionalKeyframes;
-
- [SerializeField]
- private float animationDuration;
-
- [SerializeField]
- private float cutsceneAnimationDuration;
-
- [SerializeField]
- private DestroyOrDisableOnEnable disablerComponent;
-
- private int bossStage;
-
- private bool coroutineRunning;
-
- [SerializeField]
- private WigglerAnimationState wigglerAnimationState;
-
- [SerializeField]
- private float spawnWarningTime = 2f;
-
- [SerializeField]
- private Wave waveToSpawn;
-
- [SerializeField]
- private float waveToSpawnInterval;
-
- [SerializeField]
- private float waveToSpawnIntervalIncrease = 2f;
-
- private float waveToSpawnIntervalCurrent;
-
- private float cooldownToEnemySpawn;
-
- private bool waveRunning;
-
- private bool cutSceneAnimation;
-
- [SerializeField]
- private AudioSource audioSourceSpawnsAndScream;
-
- private ThronefallAudioManager audioManager;
-
- private AudioSet audioSet;
-
- [SerializeField]
- private float takeDamageDuringEnemySpawn = 100f;
-
- private void Start()
- {
- audioManager = ThronefallAudioManager.Instance;
- audioSet = audioManager.audioContent;
- waveToSpawnIntervalCurrent = waveToSpawnInterval;
- base.transform.localPosition = stratKeyframe.localPosition;
- base.transform.localRotation = stratKeyframe.localRotation;
- StopAllCoroutines();
- StartCoroutine(StartAnimation());
- }
-
- private IEnumerator StartAnimation()
- {
- hp.invulnerable = true;
- coroutineRunning = true;
- yield return TransitionTo(cutsceneKeyframe, cutsceneAnimationDuration);
- hp.invulnerable = true;
- coroutineRunning = true;
- cutSceneAnimation = true;
- disablerComponent.enabled = true;
- yield return new WaitForSeconds(cutsceneHoldPosition);
- cutSceneAnimation = false;
- yield return TransitionTo(mainKeyframes[0], animationDuration / 2f);
- coroutineRunning = false;
- hp.invulnerable = false;
- }
-
- private void Update()
- {
- if (hp.HpPercentage <= (float)(mainKeyframes.Length - (bossStage + 1)) / (float)mainKeyframes.Length)
- {
- waveToSpawnIntervalCurrent = waveToSpawnInterval;
- bossStage++;
- StopAllCoroutines();
- StartCoroutine(TransitionOverTo(transitionalKeyframes[bossStage], mainKeyframes[bossStage], animationDuration));
- }
- cooldownToEnemySpawn -= Time.deltaTime;
- if (cooldownToEnemySpawn <= 0f && !coroutineRunning && !waveRunning)
- {
- cooldownToEnemySpawn = waveToSpawnIntervalCurrent;
- waveToSpawnIntervalCurrent += waveToSpawnIntervalIncrease;
- waveToSpawn.Reset();
- waveRunning = true;
- }
- if (waveRunning)
- {
- hp.TakeDamage(Time.deltaTime * takeDamageDuringEnemySpawn, null, causedByPlayer: false, invokeFeedbackEvents: false);
- waveToSpawn.Update();
- if (waveToSpawn.HasFinished())
- {
- waveRunning = false;
- }
- }
- if (waveRunning || (cooldownToEnemySpawn <= spawnWarningTime && !coroutineRunning))
- {
- if (wigglerAnimationState.animationState != 1)
- {
- audioSourceSpawnsAndScream.PlayOneShot(audioSet.EismolochSpawnUnits.clips[Random.Range(0, audioSet.EismolochSpawnUnits.clips.Length)]);
- if (Random.value <= 0.33f)
- {
- audioSourceSpawnsAndScream.PlayOneShot(audioSet.EismolochScream.clips[Random.Range(0, audioSet.EismolochScream.clips.Length)]);
- }
- }
- wigglerAnimationState.animationState = 1;
- }
- else if (cutSceneAnimation)
- {
- wigglerAnimationState.animationState = 1;
- }
- else
- {
- wigglerAnimationState.animationState = 0;
- }
- }
-
- private IEnumerator TransitionOverTo(Transform _transitionOver, Transform _transitionTo, float _animationDuration = 5f)
- {
- coroutineRunning = true;
- yield return TransitionTo(_transitionOver, _animationDuration / 2f);
- coroutineRunning = true;
- yield return TransitionTo(_transitionTo, _animationDuration / 2f);
- coroutineRunning = false;
- }
-
- private IEnumerator TransitionTo(Transform _transitionTo, float _animationDuration = 5f)
- {
- hp.invulnerable = true;
- hpBarMulti.UpdateDisplay();
- coroutineRunning = true;
- Vector3 startPosition = base.transform.localPosition;
- Quaternion startRotation = base.transform.localRotation;
- for (float animProgress = 0f; animProgress < _animationDuration; animProgress += Time.deltaTime)
- {
- float f = animProgress / _animationDuration;
- f = 3f * Mathf.Pow(f, 2f) - 2f * Mathf.Pow(f, 3f);
- base.transform.localPosition = Vector3.Lerp(startPosition, _transitionTo.localPosition, f);
- base.transform.localRotation = Quaternion.Lerp(startRotation, _transitionTo.localRotation, f);
- yield return null;
- }
- base.transform.localPosition = _transitionTo.localPosition;
- base.transform.localRotation = _transitionTo.localRotation;
- coroutineRunning = false;
- hp.invulnerable = false;
- hpBarMulti.UpdateDisplay();
- }
-}
diff --git a/GameCode/LaunchableDefenseMechanismInteractor.cs b/GameCode/LaunchableDefenseMechanismInteractor.cs
deleted file mode 100644
index c408385..0000000
--- a/GameCode/LaunchableDefenseMechanismInteractor.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using UnityEngine;
-
-public class LaunchableDefenseMechanismInteractor : InteractorBase, DayNightCycle.IDaytimeSensitive
-{
- public GameObject focusIndicator;
-
- public LaunchableProjectile projectilePrefab;
-
- public Transform projectileSpawn;
-
- public bool autoReloadOnDawn = true;
-
- private LaunchableProjectile currentProjectile;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- Reload();
- if (DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- base.gameObject.SetActive(value: false);
- }
- }
-
- public override void Focus(PlayerInteraction player)
- {
- if ((bool)currentProjectile)
- {
- focusIndicator.SetActive(value: true);
- }
- }
-
- public override void InteractionBegin(PlayerInteraction player)
- {
- if ((bool)currentProjectile)
- {
- currentProjectile.Launch();
- currentProjectile.transform.parent = null;
- currentProjectile = null;
- Unfocus(player);
- }
- }
-
- public void OnDawn_AfterSunrise()
- {
- base.gameObject.SetActive(value: false);
- if (autoReloadOnDawn)
- {
- Reload();
- }
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- base.gameObject.SetActive(value: true);
- }
-
- public override void Unfocus(PlayerInteraction player)
- {
- focusIndicator.SetActive(value: false);
- }
-
- public void Reload()
- {
- if (!currentProjectile)
- {
- currentProjectile = Object.Instantiate(projectilePrefab, projectileSpawn.transform.position, projectileSpawn.transform.rotation, base.transform.parent);
- }
- }
-
- private void OnDrawGizmos()
- {
- Gizmos.color = Color.black;
- Gizmos.DrawWireMesh(projectilePrefab.GetComponentInChildren<MeshFilter>().sharedMesh, 0, projectileSpawn.position, projectileSpawn.rotation, projectilePrefab.transform.localScale);
- Gizmos.color = Color.magenta;
- Gizmos.DrawLine(projectileSpawn.position, projectileSpawn.position + projectileSpawn.forward * 15f);
- Gizmos.DrawWireSphere(projectileSpawn.position + projectileSpawn.forward * 15f, 0.3f);
- }
-}
diff --git a/GameCode/LaunchableProjectile.cs b/GameCode/LaunchableProjectile.cs
deleted file mode 100644
index 84f9fbd..0000000
--- a/GameCode/LaunchableProjectile.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class LaunchableProjectile : MonoBehaviour
-{
- public float speed = 20f;
-
- public float lifetime = 3f;
-
- public bool groundedTranslation;
-
- public LayerMask groundLayer;
-
- public Vector3 groundingOfffset;
-
- public List<DamageModifyer> dmgModifiers = new List<DamageModifyer>();
-
- public LayerMask hitLayer;
-
- public Vector3 damageBoxExtents;
-
- private bool launched;
-
- private float timer;
-
- private List<Hp> touchedEnemies = new List<Hp>();
-
- public void Launch()
- {
- launched = true;
- if (groundedTranslation && Physics.Raycast(new Ray(base.transform.position, Vector3.down), out var hitInfo, float.PositiveInfinity, groundLayer))
- {
- base.transform.position = hitInfo.point + groundingOfffset;
- }
- }
-
- private void Update()
- {
- if (!launched)
- {
- return;
- }
- timer += Time.deltaTime;
- base.transform.position += base.transform.forward * speed * Time.deltaTime;
- Collider[] array = Physics.OverlapBox(base.transform.position, damageBoxExtents / 2f, base.transform.rotation, hitLayer);
- for (int i = 0; i < array.Length; i++)
- {
- Hp componentInParent = array[i].GetComponentInParent<Hp>();
- if ((bool)componentInParent && !touchedEnemies.Contains(componentInParent))
- {
- touchedEnemies.Add(componentInParent);
- componentInParent.TakeDamage(DamageModifyer.CalculateDamageOnTarget(componentInParent.TaggedObj, dmgModifiers));
- }
- }
- if (timer >= lifetime)
- {
- Object.Destroy(base.gameObject);
- }
- }
-
- private void OnDrawGizmos()
- {
- Gizmos.color = Color.magenta;
- Gizmos.DrawWireCube(base.transform.position, damageBoxExtents);
- }
-}
diff --git a/GameCode/LevelAudio.cs b/GameCode/LevelAudio.cs
deleted file mode 100644
index 0ced3a9..0000000
--- a/GameCode/LevelAudio.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class LevelAudio : MonoBehaviour
-{
- [Serializable]
- public class CivilisationAudioSource
- {
- public AudioSource audioSource;
-
- public float volumeAtCastleCenterBuild = 0.1f;
-
- public float targetVolume;
-
- public int targetBuildingAmount;
- }
-
- public List<CivilisationAudioSource> managedCivAudioSources;
-
- private int buildingCount;
-
- private void OnValidate()
- {
- foreach (CivilisationAudioSource managedCivAudioSource in managedCivAudioSources)
- {
- if (managedCivAudioSource.audioSource != null)
- {
- managedCivAudioSource.targetVolume = managedCivAudioSource.audioSource.volume;
- }
- }
- }
-
- private void Start()
- {
- for (int num = managedCivAudioSources.Count - 1; num >= 0; num--)
- {
- CivilisationAudioSource civilisationAudioSource = managedCivAudioSources[num];
- if (civilisationAudioSource.audioSource == null)
- {
- managedCivAudioSources.RemoveAt(num);
- }
- else
- {
- civilisationAudioSource.targetVolume = civilisationAudioSource.audioSource.volume;
- civilisationAudioSource.audioSource.volume = 0f;
- }
- }
- ThronefallAudioManager.Instance.onBuildingBuild.AddListener(OnNewBuildingBuilt);
- }
-
- private void OnNewBuildingBuilt()
- {
- for (int num = managedCivAudioSources.Count - 1; num >= 0; num--)
- {
- CivilisationAudioSource civilisationAudioSource = managedCivAudioSources[num];
- civilisationAudioSource.audioSource.volume = Mathf.Lerp(civilisationAudioSource.volumeAtCastleCenterBuild, civilisationAudioSource.targetVolume, Mathf.InverseLerp(0f, civilisationAudioSource.targetBuildingAmount, buildingCount));
- if (buildingCount >= civilisationAudioSource.targetBuildingAmount)
- {
- managedCivAudioSources.RemoveAt(num);
- }
- }
- buildingCount++;
- if (managedCivAudioSources.Count < 1)
- {
- ThronefallAudioManager.Instance.onBuildingBuild.RemoveListener(OnNewBuildingBuilt);
- }
- }
-}
diff --git a/GameCode/LevelBorder.cs b/GameCode/LevelBorder.cs
deleted file mode 100644
index 7bc2eff..0000000
--- a/GameCode/LevelBorder.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System.Collections;
-using Shapes;
-using UnityEngine;
-
-public class LevelBorder : MonoBehaviour
-{
- public BoxCollider boxCol;
-
- public float fadeInDistance;
-
- public Line line;
-
- private readonly float tickTime = 0.5f;
-
- private readonly float fadeTime = 0.75f;
-
- private float timer;
-
- private bool fadedIn;
-
- private Transform target;
-
- private Color defaultColor;
-
- private Color fadeOutColor;
-
- private Coroutine currentFade;
-
- private void Start()
- {
- target = TagManager.instance.Players[0].transform;
- defaultColor = line.Color;
- fadeOutColor = defaultColor;
- fadeOutColor.a = 0f;
- line.Color = fadeOutColor;
- }
-
- private void Update()
- {
- timer += Time.deltaTime;
- if (!(timer >= tickTime))
- {
- return;
- }
- timer = 0f;
- float num = Vector3.Distance(target.position, boxCol.ClosestPoint(target.position));
- if (fadedIn && num > fadeInDistance)
- {
- if (currentFade == null)
- {
- currentFade = StartCoroutine(FadeOut());
- }
- fadedIn = false;
- }
- else if (!fadedIn && num <= fadeInDistance)
- {
- if (currentFade == null)
- {
- currentFade = StartCoroutine(FadeIn());
- }
- fadedIn = true;
- }
- }
-
- private IEnumerator FadeIn()
- {
- float timer = 0f;
- while (timer <= fadeTime)
- {
- timer += Time.deltaTime;
- line.Color = Color.Lerp(fadeOutColor, defaultColor, timer / fadeTime);
- yield return null;
- }
- line.Color = defaultColor;
- currentFade = null;
- if (!fadedIn)
- {
- currentFade = StartCoroutine(FadeOut());
- }
- }
-
- private IEnumerator FadeOut()
- {
- float timer = 0f;
- while (timer <= fadeTime)
- {
- timer += Time.deltaTime;
- line.Color = Color.Lerp(defaultColor, fadeOutColor, timer / fadeTime);
- yield return null;
- }
- line.Color = fadeOutColor;
- currentFade = null;
- if (fadedIn)
- {
- currentFade = StartCoroutine(FadeIn());
- }
- }
-}
diff --git a/GameCode/LevelData.cs b/GameCode/LevelData.cs
deleted file mode 100644
index 2f7caa9..0000000
--- a/GameCode/LevelData.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-[Serializable]
-public class LevelData
-{
- public int questsCompleteWhenLastVisitingMap;
-
- public bool beaten;
-
- public int highscore;
-
- public List<int> dayToDayScore = new List<int>();
-
- public List<int> dayToDayNetworth = new List<int>();
-
- public bool beatenBest;
-
- public int highscoreBest;
-
- public List<int> dayToDayScoreBest = new List<int>();
-
- public List<int> dayToDayNetworthBest = new List<int>();
-
- public List<List<Equippable>> levelHasBeenBeatenWith = new List<List<Equippable>>();
-
- public void SaveScoreAndStatsToBestIfBest(bool _endOfMatch)
- {
- beatenBest = beaten || beatenBest;
- if (highscore > highscoreBest)
- {
- highscoreBest = highscore;
- dayToDayScoreBest = new List<int>(dayToDayScore);
- dayToDayNetworthBest = new List<int>(dayToDayNetworth);
- }
- if (_endOfMatch && beaten)
- {
- levelHasBeenBeatenWith.Add(new List<Equippable>(PerkManager.instance.CurrentlyEquipped));
- }
- beaten = false;
- highscore = 0;
- dayToDayScore = new List<int>();
- dayToDayScore.Add(0);
- dayToDayNetworth = new List<int>();
- }
-}
diff --git a/GameCode/LevelInteractor.cs b/GameCode/LevelInteractor.cs
deleted file mode 100644
index efad8df..0000000
--- a/GameCode/LevelInteractor.cs
+++ /dev/null
@@ -1,280 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using I2.Loc;
-using TMPro;
-using UnityEngine;
-
-public class LevelInteractor : InteractorBase
-{
- public string sceneName;
-
- public string displayName;
-
- private LevelSelectManager levelSelectManager;
-
- private LevelProgressManager levelProgressManager;
-
- private LevelData myLevelData;
-
- [Header("Unlock Requirements")]
- [SerializeField]
- private bool unlockedInDemo;
-
- public LevelInteractor requirementThisLevelMustBeBeaten;
-
- [SerializeField]
- private string tooltipThisLevelMustBeBeaten = "Beat <lvlname> to unlock this level.";
-
- [Header("Setup")]
- [SerializeField]
- private GameObject focusPanel;
-
- [Header("Setup")]
- [SerializeField]
- private GameObject cantBePlayedPanel;
-
- [SerializeField]
- private TextMeshProUGUI cantBePlayedCue;
-
- [SerializeField]
- private GameObject lockedLevelVisuals;
-
- [SerializeField]
- private GameObject unlockedLevelVisuals;
-
- [SerializeField]
- private GameObject beatenLevelVisuals;
-
- [Header("Quests")]
- [SerializeField]
- private Transform rewardBuildingsParent;
-
- [SerializeField]
- private TMP_Text questsComplete;
-
- [SerializeField]
- private Color allQuestComplete;
-
- [SerializeField]
- private Color notAllQuestComplete;
-
- [SerializeField]
- private List<Quest> quests = new List<Quest>();
-
- [Header("Loadout")]
- public List<Equippable> fixedLoadout = new List<Equippable>();
-
- public static LevelInteractor lastActivatedLevelInteractor;
-
- private string tooltipGetTheFullGame => LocalizationManager.GetTranslation("Menu/Get Full Game");
-
- public List<Quest> Quests => quests;
-
- public bool HasFixedLoadout => fixedLoadout.Count > 0;
-
- public bool CanBePlayed
- {
- get
- {
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- return true;
- }
- if (requirementThisLevelMustBeBeaten != null && !requirementThisLevelMustBeBeaten.Beaten)
- {
- return false;
- }
- return true;
- }
- }
-
- public string CanNotBePlayedReason
- {
- get
- {
- if ((bool)requirementThisLevelMustBeBeaten && !requirementThisLevelMustBeBeaten.Beaten)
- {
- return tooltipThisLevelMustBeBeaten.Replace("<lvlname>", requirementThisLevelMustBeBeaten.displayName);
- }
- return "";
- }
- }
-
- public bool Beaten
- {
- get
- {
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- return true;
- }
- if (myLevelData == null)
- {
- levelProgressManager = LevelProgressManager.instance;
- myLevelData = levelProgressManager.GetLevelDataForScene(sceneName);
- }
- return myLevelData.beatenBest;
- }
- }
-
- public void UpdateVisualsOnStart()
- {
- if (myLevelData == null)
- {
- levelProgressManager = LevelProgressManager.instance;
- myLevelData = levelProgressManager.GetLevelDataForScene(sceneName);
- }
- lockedLevelVisuals.SetActive(value: false);
- unlockedLevelVisuals.SetActive(value: false);
- beatenLevelVisuals.SetActive(value: false);
- questsComplete.transform.parent.gameObject.SetActive(value: false);
- questsComplete.text = QuestsBeatenString();
- int num = QuestsComplete();
- if (num == QuestsTotal())
- {
- AchievementManager.LevelAllQuestsComplete(sceneName);
- }
- if (myLevelData.beatenBest)
- {
- AchievementManager.LevelBeaten(sceneName);
- }
- questsComplete.color = ((num >= QuestsTotal()) ? allQuestComplete : notAllQuestComplete);
- float num2 = (float)num / (float)QuestsTotal();
- int enabledBuildings = Mathf.FloorToInt((float)rewardBuildingsParent.childCount * (float)myLevelData.questsCompleteWhenLastVisitingMap);
- int num3 = Mathf.FloorToInt((float)rewardBuildingsParent.childCount * num2);
- myLevelData.questsCompleteWhenLastVisitingMap = num3;
- StartCoroutine(EnableBuildingsCoroutine(enabledBuildings, num3, 0.75f, 0.5f));
- if (!CanBePlayed)
- {
- lockedLevelVisuals.SetActive(value: true);
- return;
- }
- questsComplete.transform.parent.gameObject.SetActive(value: true);
- if (!Beaten)
- {
- unlockedLevelVisuals.SetActive(value: true);
- }
- else
- {
- beatenLevelVisuals.SetActive(value: true);
- }
- }
-
- private IEnumerator EnableBuildingsCoroutine(int _enabledBuildings, int _enabledBuildingsUpTo, float _initialDelay, float _interval)
- {
- if (rewardBuildingsParent.childCount < _enabledBuildingsUpTo)
- {
- Debug.LogWarning("Not enough children in the rewardBuildingsParent to satisfy enabledBuildingsUpTo");
- yield break;
- }
- if (rewardBuildingsParent.childCount < _enabledBuildings)
- {
- Debug.LogWarning("Not enough children in the rewardBuildingsParent to satisfy enabledBuildings");
- yield break;
- }
- for (int j = 0; j < rewardBuildingsParent.childCount; j++)
- {
- rewardBuildingsParent.GetChild(j).gameObject.SetActive(value: false);
- }
- for (int k = 0; k < _enabledBuildings; k++)
- {
- rewardBuildingsParent.GetChild(k).gameObject.SetActive(value: true);
- }
- yield return new WaitForSeconds(_initialDelay);
- for (int i = _enabledBuildings; i < _enabledBuildingsUpTo; i++)
- {
- rewardBuildingsParent.GetChild(i).gameObject.SetActive(value: true);
- rewardBuildingsParent.GetChild(i).GetChild(0).gameObject.SetActive(value: true);
- yield return new WaitForSeconds(_interval);
- }
- }
-
- private void Start()
- {
- levelSelectManager = GetComponentInParent<LevelSelectManager>();
- levelProgressManager = LevelProgressManager.instance;
- myLevelData = levelProgressManager.GetLevelDataForScene(sceneName);
- focusPanel.SetActive(value: false);
- cantBePlayedPanel.SetActive(value: false);
- UpdateVisualsOnStart();
- }
-
- public override string ReturnTooltip()
- {
- if (CanBePlayed)
- {
- return LocalizationManager.GetTranslation("Menu/Level Interactor Cue");
- }
- return "";
- }
-
- private string GenerateCueText()
- {
- if (!CanBePlayed)
- {
- return CanNotBePlayedReason;
- }
- if (levelSelectManager.PreLevelMenuIsOpen)
- {
- return "";
- }
- return displayName;
- }
-
- public override void InteractionBegin(PlayerInteraction _player)
- {
- if (CanBePlayed)
- {
- lastActivatedLevelInteractor = this;
- UIFrameManager.TryOpenLevelSelect();
- }
- }
-
- public override void Focus(PlayerInteraction _player)
- {
- if (CanBePlayed)
- {
- focusPanel.SetActive(value: true);
- cantBePlayedPanel.SetActive(value: false);
- }
- else
- {
- cantBePlayedCue.text = GenerateCueText();
- cantBePlayedPanel.SetActive(value: true);
- focusPanel.SetActive(value: false);
- }
- }
-
- public override void Unfocus(PlayerInteraction _player)
- {
- focusPanel.SetActive(value: false);
- cantBePlayedPanel.SetActive(value: false);
- }
-
- public int QuestsComplete()
- {
- int num = 0;
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- return quests.Count;
- }
- for (int i = 0; i < quests.Count; i++)
- {
- if (quests[i].CheckBeaten(myLevelData))
- {
- num++;
- }
- }
- return num;
- }
-
- public int QuestsTotal()
- {
- return quests.Count;
- }
-
- public string QuestsBeatenString()
- {
- return QuestsComplete() + "/" + QuestsTotal();
- }
-}
diff --git a/GameCode/LevelProgressManager.cs b/GameCode/LevelProgressManager.cs
deleted file mode 100644
index 500bf43..0000000
--- a/GameCode/LevelProgressManager.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using UnityEngine;
-using UnityEngine.SceneManagement;
-
-public class LevelProgressManager : MonoBehaviour
-{
- public static LevelProgressManager instance;
-
- [SerializeField]
- private SceneNameToLevelData sceneNameToLevelData = new SceneNameToLevelData();
-
- public SceneNameToLevelData SceneNameToLevelData => sceneNameToLevelData;
-
- public bool StartsWithUnderscore(string input)
- {
- if (string.IsNullOrEmpty(input))
- {
- return false;
- }
- return input[0] == '_';
- }
-
- private void Awake()
- {
- if ((bool)instance)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.transform.root.gameObject);
- }
-
- public LevelData GetLevelDataForScene(string _sceneName)
- {
- if (_sceneName == SceneTransitionManager.instance.levelSelectScene)
- {
- return null;
- }
- if (StartsWithUnderscore(_sceneName))
- {
- return null;
- }
- if (sceneNameToLevelData.ContainsKey(_sceneName))
- {
- return sceneNameToLevelData[_sceneName];
- }
- LevelData levelData = new LevelData();
- sceneNameToLevelData.Add(_sceneName, levelData);
- return levelData;
- }
-
- public LevelData GetLevelDataForActiveScene()
- {
- string sceneName = SceneManager.GetActiveScene().name;
- return GetLevelDataForScene(sceneName);
- }
-}
diff --git a/GameCode/LevelSelectManager.cs b/GameCode/LevelSelectManager.cs
deleted file mode 100644
index 5650ffd..0000000
--- a/GameCode/LevelSelectManager.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class LevelSelectManager : MonoBehaviour
-{
- public static LevelSelectManager instance;
-
- private LevelInteractor[] levelInteractors;
-
- public Vector3 spawnOnLevelOffsetPositon;
-
- public PlayerMovement playerMovement;
-
- public TMP_Text levelTitle;
-
- public TMP_Text levelHighscore;
-
- public TMP_Text beatenState;
-
- public string notBeatenYet = "Not beaten yet.";
-
- public string successfullyBeaten = "Successfully beaten.";
-
- public string scorePrefix = "Your Best: ";
-
- public GameObject tooltipObject;
-
- public Image tooltipImage;
-
- public TMP_Text tooltipTitle;
-
- public TMP_Text tooltipDescription;
-
- private Equippable showingTooltipFor;
-
- public Canvas levelSelectedCanvas;
-
- public Camera camMain;
-
- private LevelInteractor openedLevel;
-
- private int iFrames;
-
- private bool fixedLoadout;
-
- public Equippable ShowingTooltipFor => showingTooltipFor;
-
- public bool PreLevelMenuIsOpen => openedLevel != null;
-
- public void ShowTooltip(Equippable _eq)
- {
- showingTooltipFor = _eq;
- tooltipObject.SetActive(_eq != null);
- if (!(_eq == null))
- {
- tooltipImage.sprite = _eq.icon;
- tooltipTitle.text = _eq.displayName;
- tooltipDescription.text = _eq.description;
- float num = camMain.pixelRect.height / levelSelectedCanvas.pixelRect.height;
- tooltipObject.transform.position = Input.mousePosition * num;
- }
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- levelInteractors = GetComponentsInChildren<LevelInteractor>();
- ShowTooltip(null);
- }
-
- private void MovePlayerToTheLevelYouCameFrom()
- {
- SceneTransitionManager sceneTransitionManager = SceneTransitionManager.instance;
- if (!sceneTransitionManager || sceneTransitionManager.ComingFromGameplayScene == "")
- {
- return;
- }
- for (int i = 0; i < levelInteractors.Length; i++)
- {
- if (levelInteractors[i].sceneName == sceneTransitionManager.ComingFromGameplayScene)
- {
- playerMovement.TeleportTo(levelInteractors[i].transform.position + spawnOnLevelOffsetPositon);
- break;
- }
- }
- }
-
- private void Update()
- {
- if (iFrames <= 1)
- {
- MovePlayerToTheLevelYouCameFrom();
- }
- iFrames++;
- }
-
- public void PlayButtonPressed()
- {
- if (PreLevelMenuIsOpen)
- {
- if (openedLevel.fixedLoadout.Count > 0)
- {
- PerkManager.instance.CurrentlyEquipped.Clear();
- PerkManager.instance.CurrentlyEquipped.AddRange(openedLevel.fixedLoadout);
- }
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel(openedLevel.sceneName);
- }
- }
-}
diff --git a/GameCode/LevelSelectUIFrameHelper.cs b/GameCode/LevelSelectUIFrameHelper.cs
deleted file mode 100644
index 4a53e53..0000000
--- a/GameCode/LevelSelectUIFrameHelper.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class LevelSelectUIFrameHelper : MonoBehaviour
-{
- public TextMeshProUGUI levelTitle;
-
- public void OnShow()
- {
- levelTitle.text = LevelInteractor.lastActivatedLevelInteractor.displayName;
- }
-
- public void TransitionToSelectedLevel()
- {
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel(LevelInteractor.lastActivatedLevelInteractor.sceneName);
- }
-}
diff --git a/GameCode/LevelUpScreenAnimation.cs b/GameCode/LevelUpScreenAnimation.cs
deleted file mode 100644
index b0d4476..0000000
--- a/GameCode/LevelUpScreenAnimation.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class LevelUpScreenAnimation : MonoBehaviour
-{
- public float animationTime = 0.5f;
-
- public AnimationCurve scaleCurve;
-
- public Transform target;
-
- public void Trigger()
- {
- StopAllCoroutines();
- StartCoroutine(Animation());
- }
-
- private IEnumerator Animation()
- {
- float timer = 0f;
- while (timer < animationTime)
- {
- timer += Time.unscaledDeltaTime;
- target.localScale = Vector3.one * scaleCurve.Evaluate(Mathf.InverseLerp(0f, animationTime, timer));
- yield return null;
- }
- target.localScale = Vector3.one;
- }
-}
diff --git a/GameCode/LimitDeltaTime.cs b/GameCode/LimitDeltaTime.cs
deleted file mode 100644
index d0a7f54..0000000
--- a/GameCode/LimitDeltaTime.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using UnityEngine;
-
-public class LimitDeltaTime : MonoBehaviour
-{
- public float maxDeltaTimeInMs = 16f;
-
- private void Start()
- {
- Time.maximumDeltaTime = maxDeltaTimeInMs / 1000f;
- }
-}
diff --git a/GameCode/LimitedLifetime.cs b/GameCode/LimitedLifetime.cs
deleted file mode 100644
index 1d99757..0000000
--- a/GameCode/LimitedLifetime.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using UnityEngine;
-
-public class LimitedLifetime : MonoBehaviour
-{
- public float liftetime = 5f;
-
- private void Start()
- {
- Object.Destroy(base.gameObject, liftetime);
- }
-}
diff --git a/GameCode/LoadSceneOnTop.cs b/GameCode/LoadSceneOnTop.cs
deleted file mode 100644
index c514abe..0000000
--- a/GameCode/LoadSceneOnTop.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using UnityEngine;
-using UnityEngine.SceneManagement;
-
-public class LoadSceneOnTop : MonoBehaviour
-{
- [SerializeField]
- private string sceneNameToLoad;
-
- private void Start()
- {
- LoadScene();
- }
-
- public void LoadScene()
- {
- if (!string.IsNullOrEmpty(sceneNameToLoad))
- {
- SceneManager.LoadScene(sceneNameToLoad, LoadSceneMode.Additive);
- }
- else
- {
- Debug.LogError("Scene name is not specified. Please provide a valid scene name.");
- }
- }
-}
diff --git a/GameCode/LoadoutUIHelper.cs b/GameCode/LoadoutUIHelper.cs
deleted file mode 100644
index 7eccf08..0000000
--- a/GameCode/LoadoutUIHelper.cs
+++ /dev/null
@@ -1,398 +0,0 @@
-using System.Collections.Generic;
-using I2.Loc;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class LoadoutUIHelper : MonoBehaviour
-{
- public UIFrame frame;
-
- public TextMeshProUGUI perksText;
-
- public TextMeshProUGUI mutatorBonusText;
-
- public ThronefallUIElement playButton;
-
- public GridLayoutGroup weaponsParent;
-
- public GridLayoutGroup perksParent;
-
- public GridLayoutGroup mutatorsParent;
-
- public TFUIEquippable equippableButtonPrefab;
-
- public GameObject fixedLoadoutWarning;
-
- public Transform questsParent;
-
- public QuestEntry questEntryPrefab;
-
- private List<TFUIEquippable> weapons = new List<TFUIEquippable>();
-
- private List<TFUIEquippable> perks = new List<TFUIEquippable>();
-
- private List<TFUIEquippable> mutators = new List<TFUIEquippable>();
-
- private List<TFUIEquippable> equippedWeapons = new List<TFUIEquippable>();
-
- private List<TFUIEquippable> equippedPerks = new List<TFUIEquippable>();
-
- private List<TFUIEquippable> equippedMutators = new List<TFUIEquippable>();
-
- private readonly int numberOfWeaponsAllowedToEquip = 1;
-
- private readonly int numberOfMutatiomsAllowedToEquip = 1000;
-
- private int numberOfPerksAllowedToEquip;
-
- private LevelData levelData;
-
- public void OnShow()
- {
- levelData = LevelProgressManager.instance.GetLevelDataForScene(LevelInteractor.lastActivatedLevelInteractor.sceneName);
- weapons.Clear();
- perks.Clear();
- mutators.Clear();
- equippedWeapons.Clear();
- equippedPerks.Clear();
- equippedMutators.Clear();
- foreach (Transform item in weaponsParent.transform)
- {
- Object.Destroy(item.gameObject);
- }
- foreach (Transform item2 in perksParent.transform)
- {
- Object.Destroy(item2.gameObject);
- }
- foreach (Transform item3 in mutatorsParent.transform)
- {
- Object.Destroy(item3.gameObject);
- }
- fixedLoadoutWarning.SetActive(LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout);
- numberOfPerksAllowedToEquip = 0;
- foreach (Equippable unlockedEquippable in PerkManager.instance.UnlockedEquippables)
- {
- if (unlockedEquippable is PerkPoint)
- {
- numberOfPerksAllowedToEquip++;
- }
- else if (unlockedEquippable is EquippableWeapon)
- {
- AddTFUIEquippable(weaponsParent, unlockedEquippable);
- }
- else if (unlockedEquippable is EquippablePerk)
- {
- AddTFUIEquippable(perksParent, unlockedEquippable);
- }
- else if (unlockedEquippable is EquippableMutation)
- {
- AddTFUIEquippable(mutatorsParent, unlockedEquippable);
- }
- }
- foreach (MetaLevel metaLevel in PerkManager.instance.MetaLevels)
- {
- Equippable reward = metaLevel.reward;
- if (!PerkManager.instance.UnlockedEquippables.Contains(reward))
- {
- if (reward is EquippableWeapon)
- {
- AddTFUIEquippable(weaponsParent, reward);
- }
- else if (reward is EquippablePerk)
- {
- AddTFUIEquippable(perksParent, reward);
- }
- else if (reward is EquippableMutation)
- {
- AddTFUIEquippable(mutatorsParent, reward);
- }
- }
- }
- RecomputeNavigation();
- RewriteQuestTexts();
- UpdatePerksText();
- UpdateMutatorBonusText();
- }
-
- private void AddTFUIEquippable(GridLayoutGroup parent, Equippable e)
- {
- TFUIEquippable component = Object.Instantiate(equippableButtonPrefab, parent.transform).GetComponent<TFUIEquippable>();
- component.SetData(e);
- if (PerkManager.IsEquipped(e))
- {
- if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout && !LevelInteractor.lastActivatedLevelInteractor.fixedLoadout.Contains(e))
- {
- PerkManager.SetEquipped(e, _equipped: false);
- }
- else
- {
- component.Pick();
- if (e is EquippableWeapon)
- {
- equippedWeapons.Add(component);
- }
- if (e is EquippablePerk)
- {
- equippedPerks.Add(component);
- }
- if (e is EquippableMutation)
- {
- equippedMutators.Add(component);
- }
- }
- }
- else if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout && LevelInteractor.lastActivatedLevelInteractor.fixedLoadout.Contains(e))
- {
- PerkManager.SetEquipped(e, _equipped: true);
- component.Pick();
- if (e is EquippableWeapon)
- {
- equippedWeapons.Add(component);
- }
- if (e is EquippablePerk)
- {
- equippedPerks.Add(component);
- }
- if (e is EquippableMutation)
- {
- equippedMutators.Add(component);
- }
- }
- if (parent == weaponsParent)
- {
- weapons.Add(component);
- }
- else if (parent == perksParent)
- {
- perks.Add(component);
- }
- else if (parent == mutatorsParent)
- {
- mutators.Add(component);
- }
- }
-
- public void TrySelectEquippableForLoadout()
- {
- TFUIEquippable tFUIEquippable = frame.LastApplied as TFUIEquippable;
- if (tFUIEquippable == null || tFUIEquippable.Locked || LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout)
- {
- return;
- }
- if (tFUIEquippable.Data is EquippableWeapon)
- {
- for (int num = equippedWeapons.Count - 1; num >= 0; num--)
- {
- PerkManager.SetEquipped(equippedWeapons[num].Data, _equipped: false);
- equippedWeapons[num].UnPick();
- equippedWeapons.Remove(equippedWeapons[num]);
- }
- tFUIEquippable.Pick();
- PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true);
- equippedWeapons.Add(tFUIEquippable);
- }
- if (tFUIEquippable.Data is EquippablePerk)
- {
- List<TFUIEquippable> list = new List<TFUIEquippable>();
- int num2 = 0;
- for (int num3 = equippedPerks.Count - 1; num3 >= 0; num3--)
- {
- if (equippedPerks[num3] != tFUIEquippable)
- {
- num2++;
- }
- if (num2 >= numberOfPerksAllowedToEquip)
- {
- list.Add(equippedPerks[num3]);
- }
- }
- foreach (TFUIEquippable item in list)
- {
- PerkManager.SetEquipped(item.Data, _equipped: false);
- item.UnPick();
- equippedPerks.Remove(item);
- }
- if (equippedPerks.Contains(tFUIEquippable))
- {
- tFUIEquippable.UnPick();
- PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: false);
- equippedPerks.Remove(tFUIEquippable);
- }
- else
- {
- tFUIEquippable.Pick();
- PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true);
- equippedPerks.Add(tFUIEquippable);
- }
- }
- if (tFUIEquippable.Data is EquippableMutation)
- {
- if (equippedMutators.Contains(tFUIEquippable))
- {
- tFUIEquippable.UnPick();
- PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: false);
- equippedMutators.Remove(tFUIEquippable);
- }
- else
- {
- tFUIEquippable.Pick();
- PerkManager.SetEquipped(tFUIEquippable.Data, _equipped: true);
- equippedMutators.Add(tFUIEquippable);
- }
- }
- UpdatePerksText();
- UpdateMutatorBonusText();
- }
-
- private void RecomputeNavigation()
- {
- int constraintCount = weaponsParent.constraintCount;
- AssignNavigationTargets(weapons, playButton, null, null, perks, constraintCount);
- AssignNavigationTargets(perks, null, weapons, null, mutators, constraintCount);
- AssignNavigationTargets(mutators, null, perks, playButton, null, constraintCount);
- playButton.topNav = mutators[mutators.Count - 1];
- playButton.leftNav = mutators[mutators.Count - 1];
- playButton.botNav = weapons[0];
- playButton.rightNav = weapons[0];
- GetComponent<UIFrame>().firstSelected = weapons[0];
- }
-
- private void RewriteQuestTexts()
- {
- for (int num = questsParent.childCount - 1; num >= 0; num--)
- {
- Object.Destroy(questsParent.GetChild(num).gameObject);
- }
- int num2 = 0;
- foreach (Quest quest in LevelInteractor.lastActivatedLevelInteractor.Quests)
- {
- Object.Instantiate(questEntryPrefab, questsParent).Init(quest, num2, quest.CheckBeaten(levelData));
- num2++;
- }
- }
-
- private void UpdatePerksText()
- {
- if (LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout)
- {
- perksText.text = LocalizationManager.GetTranslation("Menu/Perks");
- return;
- }
- perksText.text = LocalizationManager.GetTranslation("Menu/Perks") + " (" + equippedPerks.Count + "/" + numberOfPerksAllowedToEquip + ")";
- }
-
- private void UpdateMutatorBonusText()
- {
- if (equippedMutators.Count > 0)
- {
- mutatorBonusText.gameObject.SetActive(value: true);
- float num = 1f;
- foreach (TFUIEquippable equippedMutator in equippedMutators)
- {
- EquippableMutation equippableMutation = equippedMutator.Data as EquippableMutation;
- if (!(equippableMutation == null))
- {
- num *= equippableMutation.scoreMultiplyerOnWin;
- }
- }
- num -= 1f;
- mutatorBonusText.text = LocalizationManager.GetTermTranslation("Menu/Mutator Bonus Preview") + ": <style=Body Bold>+" + (num * 100f).ToString("F0") + "%";
- }
- else
- {
- mutatorBonusText.gameObject.SetActive(value: false);
- }
- }
-
- private void AssignNavigationTargets(List<TFUIEquippable> targetElements, ThronefallUIElement aboveElement, List<TFUIEquippable> aboveList, ThronefallUIElement belowElement, List<TFUIEquippable> belowList, int maxColumns)
- {
- for (int i = 0; i < targetElements.Count; i++)
- {
- TFUIEquippable tFUIEquippable = targetElements[i];
- int num = i - 1;
- int num2 = i + 1;
- int num3 = i + maxColumns;
- int num4 = i - maxColumns;
- if (num < 0)
- {
- if (aboveElement != null)
- {
- tFUIEquippable.leftNav = aboveElement;
- }
- else
- {
- tFUIEquippable.leftNav = aboveList[aboveList.Count - 1];
- }
- }
- else
- {
- tFUIEquippable.leftNav = targetElements[num];
- }
- if (num2 >= targetElements.Count)
- {
- if (belowElement != null)
- {
- tFUIEquippable.rightNav = belowElement;
- }
- else
- {
- tFUIEquippable.rightNav = belowList[0];
- }
- }
- else
- {
- tFUIEquippable.rightNav = targetElements[num2];
- }
- if (num3 >= targetElements.Count)
- {
- if (targetElements.Count - i > targetElements.Count % maxColumns)
- {
- tFUIEquippable.botNav = targetElements[targetElements.Count - 1];
- }
- else if (belowElement != null)
- {
- tFUIEquippable.botNav = belowElement;
- }
- else
- {
- int num5 = i % maxColumns;
- if (belowList.Count < num5)
- {
- tFUIEquippable.botNav = belowList[belowList.Count - 1];
- }
- else
- {
- tFUIEquippable.botNav = belowList[num5];
- }
- }
- }
- else
- {
- tFUIEquippable.botNav = targetElements[num3];
- }
- if (num4 < 0)
- {
- if (aboveElement != null)
- {
- tFUIEquippable.topNav = aboveElement;
- continue;
- }
- int num6 = i % maxColumns;
- int num7 = aboveList.Count % maxColumns;
- if (num6 > num7)
- {
- tFUIEquippable.topNav = aboveList[aboveList.Count - 1];
- continue;
- }
- int value = aboveList.Count - num7 + num6;
- value = Mathf.Clamp(value, 0, aboveList.Count - 1);
- tFUIEquippable.topNav = aboveList[value];
- }
- else
- {
- tFUIEquippable.topNav = targetElements[num4];
- }
- }
- }
-}
diff --git a/GameCode/LocalGamestate.cs b/GameCode/LocalGamestate.cs
deleted file mode 100644
index 655c7a2..0000000
--- a/GameCode/LocalGamestate.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class LocalGamestate : MonoBehaviour
-{
- public enum State
- {
- PreMatch,
- InMatch,
- AfterMatchVictory,
- AfterMatchDefeat
- }
-
- [SerializeField]
- private bool autoStartMatch = true;
-
- [SerializeField]
- private State currentState;
-
- [SerializeField]
- private List<Hp> objectsThatTriggerLoseWhenDestroyed = new List<Hp>();
-
- [HideInInspector]
- public UnityEvent OnGameStateChange = new UnityEvent();
-
- private static LocalGamestate instance;
-
- private bool playerFrozen;
-
- public State CurrentState => currentState;
-
- public static LocalGamestate Instance => instance;
-
- public bool PlayerFrozen => playerFrozen;
-
- private void Awake()
- {
- if (instance != null)
- {
- Debug.LogWarning("Multiple LocalGamestate Objects detected. Please make sure there is only on LocalGamestate in the scene. Old instance got destroyed.");
- Object.Destroy(instance.gameObject);
- }
- instance = this;
- }
-
- private void Start()
- {
- LevelProgressManager.instance.GetLevelDataForActiveScene()?.SaveScoreAndStatsToBestIfBest(_endOfMatch: false);
- if (autoStartMatch)
- {
- SetState(State.InMatch);
- }
- foreach (Hp item in objectsThatTriggerLoseWhenDestroyed)
- {
- if ((bool)item && item.OnKillOrKnockout != null)
- {
- item.OnKillOrKnockout.AddListener(OnVitalObjectKill);
- }
- }
- }
-
- public void SetState(State nextState, bool forceTransition = false, bool immediate = false)
- {
- if (currentState == State.AfterMatchVictory || currentState == State.AfterMatchDefeat || (nextState == currentState && !forceTransition))
- {
- return;
- }
- currentState = nextState;
- OnGameStateChange.Invoke();
- if (currentState == State.AfterMatchVictory)
- {
- LevelData levelDataForActiveScene = LevelProgressManager.instance.GetLevelDataForActiveScene();
- if (levelDataForActiveScene != null)
- {
- levelDataForActiveScene.beaten = true;
- }
- }
- else
- {
- LevelData levelDataForActiveScene2 = LevelProgressManager.instance.GetLevelDataForActiveScene();
- if (levelDataForActiveScene2 != null)
- {
- levelDataForActiveScene2.beaten = false;
- }
- }
- if (CurrentState == State.AfterMatchDefeat)
- {
- MusicManager.instance.PlayMusic(null, 3f);
- }
- if (currentState == State.AfterMatchVictory || currentState == State.AfterMatchDefeat)
- {
- StartCoroutine(WaitThenTriggerEndOfMatchScreen(immediate));
- }
- }
-
- private IEnumerator WaitThenTriggerEndOfMatchScreen(bool immediate = false)
- {
- if (immediate)
- {
- yield return null;
- }
- else
- {
- yield return new WaitForSeconds(1f);
- }
- if (currentState == State.AfterMatchVictory)
- {
- SceneTransitionManager.instance.TransitionFromGameplayToEndScreen(ScoreManager.Instance.CurrentScore, ScoreManager.Instance.VictoryGoldBonus, ScoreManager.Instance.VictoryMutatorBonus);
- }
- else
- {
- SceneTransitionManager.instance.TransitionFromGameplayToEndScreen(ScoreManager.Instance.CurrentScore, 0, 0);
- }
- yield return null;
- }
-
- private void OnVitalObjectKill()
- {
- if (currentState == State.InMatch)
- {
- SetState(State.AfterMatchDefeat);
- }
- }
-
- public void SetPlayerFreezeState(bool frozen)
- {
- playerFrozen = frozen;
- }
-}
diff --git a/GameCode/LvlSelectTabButton.cs b/GameCode/LvlSelectTabButton.cs
deleted file mode 100644
index 45f6b60..0000000
--- a/GameCode/LvlSelectTabButton.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using UnityEngine;
-using UnityEngine.EventSystems;
-using UnityEngine.UI;
-
-public class LvlSelectTabButton : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
-{
- public int tabNumber;
-
- private bool mouseIsOver;
-
- private Color colorBasic;
-
- private Image image;
-
- [SerializeField]
- private Color hoverColor;
-
- [SerializeField]
- private Color selectedColor;
-
- public bool selected;
-
- private void Start()
- {
- image = GetComponent<Image>();
- colorBasic = image.color;
- }
-
- public void OnPointerEnter(PointerEventData eventData)
- {
- mouseIsOver = true;
- }
-
- public void OnPointerExit(PointerEventData eventData)
- {
- mouseIsOver = false;
- }
-
- private void Update()
- {
- image.color = (mouseIsOver ? hoverColor : colorBasic);
- if (selected)
- {
- image.color = selectedColor;
- }
- if (Input.GetMouseButtonDown(0))
- {
- _ = mouseIsOver;
- }
- }
-}
diff --git a/GameCode/ManualAttack.cs b/GameCode/ManualAttack.cs
deleted file mode 100644
index f249343..0000000
--- a/GameCode/ManualAttack.cs
+++ /dev/null
@@ -1,247 +0,0 @@
-using System.Collections.Generic;
-using Rewired;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class ManualAttack : MonoBehaviour
-{
- public float spawnAttackHeight;
-
- public List<TargetPriority> targetPriorities = new List<TargetPriority>();
-
- public Weapon weapon;
-
- public float cooldownTime = 1f;
-
- public Transform transformForAttackDirection;
-
- public Transform attackMarkerPosition;
-
- public Transform preferredTargetMarkerPosition;
-
- public bool autoAttack = true;
-
- public ParticleSystem particlesOnAttack;
-
- public bool playOneShotOnAttack;
-
- public ThronefallAudioManager.AudioOneShot oneshotOnAttack;
-
- protected float cooldown;
-
- protected float inputBuffer = -1f;
-
- protected bool isAttacking;
-
- protected Hp hpPlayer;
-
- private Player input;
-
- protected TaggedObject myTaggedObj;
-
- private DayNightCycle dayNightCycle;
-
- private PlayerUpgradeManager upgradeManager;
-
- private Vector3 lastTargetPos;
-
- [HideInInspector]
- public UnityEvent onAttack = new UnityEvent();
-
- protected AudioSet audioSet;
-
- private AudioSet.ClipArray caStillOnCooldown;
-
- private AudioSet.ClipArray caCooldownOver;
-
- protected ThronefallAudioManager audioManager;
-
- private bool timedActivationPerfectly;
-
- protected TaggedObject preferredTarget;
-
- protected TaggedObject target;
-
- private float perfectTimingDeniedFor;
-
- public float AttackDamageMultiplyer => upgradeManager.playerDamageMultiplyer;
-
- public Vector3 LastTargetPos => lastTargetPos;
-
- public float CooldownPercentage => Mathf.Clamp01(cooldown / cooldownTime);
-
- public virtual void Start()
- {
- upgradeManager = PlayerUpgradeManager.instance;
- hpPlayer = GetComponentInParent<Hp>();
- input = ReInput.players.GetPlayer(0);
- myTaggedObj = GetComponentInParent<TaggedObject>();
- dayNightCycle = DayNightCycle.Instance;
- audioSet = ThronefallAudioManager.Instance.audioContent;
- audioManager = ThronefallAudioManager.Instance;
- caStillOnCooldown = audioSet.PlayerCantUseActiveAbility;
- caCooldownOver = audioSet.ActiveAbilityCooldownReadyToUse;
- }
-
- public virtual void Update()
- {
- if (autoAttack && hpPlayer.HpValue > 0f)
- {
- Tick();
- }
- }
-
- public void Tick()
- {
- float num = cooldown;
- cooldown -= Time.deltaTime;
- if (upgradeManager.assassinsTraining && timedActivationPerfectly)
- {
- cooldown -= Time.deltaTime * UpgradeAssassinsTraining.instance.additionalCooldownSpeed;
- }
- if (num > 0f && cooldown <= 0f && !autoAttack && DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- audioManager.PlaySoundAsOneShot(caCooldownOver, 1f, 1f, audioSet.mixGroupFX, 5);
- }
- isAttacking = false;
- HandleAttackUpdate();
- inputBuffer -= Time.deltaTime;
- perfectTimingDeniedFor -= Time.deltaTime;
- if ((bool)attackMarkerPosition)
- {
- if (autoAttack || cooldown <= 0f)
- {
- target = FindAttackTarget(_choosePreferredTargetIfPossible: true);
- if (target == null)
- {
- attackMarkerPosition.gameObject.SetActive(value: false);
- }
- else
- {
- if (autoAttack)
- {
- inputBuffer = 0.2f;
- isAttacking = true;
- }
- attackMarkerPosition.gameObject.SetActive(value: true);
- attackMarkerPosition.position = target.transform.position;
- }
- }
- else
- {
- attackMarkerPosition.gameObject.SetActive(value: false);
- }
- }
- if (input.GetButtonDown("Lock Target"))
- {
- TaggedObject taggedObject = FindAttackTarget();
- if (preferredTarget == null)
- {
- preferredTarget = taggedObject;
- if ((bool)taggedObject && upgradeManager.godlyCurse && (bool)preferredTargetMarkerPosition)
- {
- taggedObject.GetComponent<Hp>().ScaleHp(1f / upgradeManager.godlyCurseDamageMultiplyer);
- }
- }
- else
- {
- if (upgradeManager.godlyCurse && (bool)preferredTargetMarkerPosition)
- {
- taggedObject.GetComponent<Hp>().ScaleHp(upgradeManager.godlyCurseDamageMultiplyer);
- }
- preferredTarget = null;
- }
- }
- if ((bool)preferredTargetMarkerPosition)
- {
- if ((bool)preferredTarget)
- {
- preferredTargetMarkerPosition.gameObject.SetActive(value: true);
- preferredTargetMarkerPosition.position = preferredTarget.transform.position;
- }
- else
- {
- preferredTargetMarkerPosition.gameObject.SetActive(value: false);
- }
- }
- }
-
- public void TryToAttack()
- {
- if (dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day && !autoAttack)
- {
- return;
- }
- if (upgradeManager.assassinsTraining && perfectTimingDeniedFor <= 0f)
- {
- timedActivationPerfectly = Mathf.Abs(cooldown) < UpgradeAssassinsTraining.instance.activationWindow;
- if (!timedActivationPerfectly)
- {
- perfectTimingDeniedFor = 2f;
- }
- }
- inputBuffer = 0.2f;
- isAttacking = true;
- }
-
- public void HandleAttackUpdate()
- {
- if (!(inputBuffer >= 0f))
- {
- return;
- }
- if (cooldown > 0f)
- {
- if (!autoAttack && cooldown > inputBuffer)
- {
- audioManager.PlaySoundAsOneShot(caStillOnCooldown, 1f, Random.Range(1.8f, 2.2f), audioSet.mixGroupFX, 5);
- inputBuffer = -1f;
- }
- }
- else
- {
- inputBuffer = -1f;
- isAttacking = true;
- cooldown = cooldownTime;
- Attack();
- }
- }
-
- public virtual void Attack()
- {
- if ((bool)particlesOnAttack)
- {
- particlesOnAttack.Play();
- }
- if (playOneShotOnAttack)
- {
- ThronefallAudioManager.Oneshot(oneshotOnAttack);
- }
- TaggedObject taggedObject = FindAttackTarget(_choosePreferredTargetIfPossible: true);
- Hp hp = null;
- if ((bool)taggedObject)
- {
- hp = taggedObject.Hp;
- lastTargetPos = taggedObject.transform.position;
- weapon.Attack(base.transform.position + spawnAttackHeight * Vector3.up, hp, transformForAttackDirection.forward, myTaggedObj, AttackDamageMultiplyer);
- onAttack.Invoke();
- }
- }
-
- protected TaggedObject FindAttackTarget(bool _choosePreferredTargetIfPossible = false)
- {
- if (_choosePreferredTargetIfPossible && (bool)preferredTarget && TagManager.instance.MeasureDistanceToTaggedObject(preferredTarget, base.transform.position) <= targetPriorities[0].range)
- {
- return preferredTarget;
- }
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- TaggedObject taggedObject = targetPriorities[i].FindClosestTaggedObject(base.transform.position);
- if (taggedObject != null)
- {
- return taggedObject;
- }
- }
- return null;
- }
-}
diff --git a/GameCode/MaterialFlasherFX.cs b/GameCode/MaterialFlasherFX.cs
deleted file mode 100644
index ed49ef1..0000000
--- a/GameCode/MaterialFlasherFX.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class MaterialFlasherFX : MonoBehaviour
-{
- public class RendererMaterialPair
- {
- public Renderer renderer;
-
- public Material originalMaterial;
-
- public RendererMaterialPair(Renderer targetRenderer)
- {
- renderer = targetRenderer;
- originalMaterial = renderer.sharedMaterial;
- }
- }
-
- public List<Renderer> targetRenderers;
-
- public Material flashMaterial;
-
- public Material specialFlashMaterial;
-
- public Material unitSelectedMaterial;
-
- private bool unitSelected;
-
- private List<RendererMaterialPair> targetRendererMaterialPairs = new List<RendererMaterialPair>();
-
- public void SetSelected(bool _selected)
- {
- unitSelected = _selected;
- foreach (RendererMaterialPair targetRendererMaterialPair in targetRendererMaterialPairs)
- {
- targetRendererMaterialPair.renderer.sharedMaterial = (unitSelected ? unitSelectedMaterial : targetRendererMaterialPair.originalMaterial);
- }
- }
-
- private void Start()
- {
- foreach (Renderer targetRenderer in targetRenderers)
- {
- if (!(targetRenderer == null))
- {
- targetRendererMaterialPairs.Add(new RendererMaterialPair(targetRenderer));
- }
- }
- }
-
- private IEnumerator FlashAnimation(float flashTime, Material mat)
- {
- foreach (RendererMaterialPair targetRendererMaterialPair in targetRendererMaterialPairs)
- {
- targetRendererMaterialPair.renderer.sharedMaterial = mat;
- }
- yield return new WaitForSeconds(flashTime);
- foreach (RendererMaterialPair targetRendererMaterialPair2 in targetRendererMaterialPairs)
- {
- targetRendererMaterialPair2.renderer.sharedMaterial = (unitSelected ? unitSelectedMaterial : targetRendererMaterialPair2.originalMaterial);
- }
- }
-
- public void TriggerFlash(bool special, float flashTime = 0.25f)
- {
- StopAllCoroutines();
- if (special)
- {
- StartCoroutine(FlashAnimation(flashTime, specialFlashMaterial));
- }
- else
- {
- StartCoroutine(FlashAnimation(flashTime, flashMaterial));
- }
- }
-}
diff --git a/GameCode/MetaLevel.cs b/GameCode/MetaLevel.cs
deleted file mode 100644
index 985a7d4..0000000
--- a/GameCode/MetaLevel.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-
-[Serializable]
-public class MetaLevel
-{
- public int requiredXp;
-
- public Equippable reward;
-}
diff --git a/GameCode/MillRotor.cs b/GameCode/MillRotor.cs
deleted file mode 100644
index b2ddb0e..0000000
--- a/GameCode/MillRotor.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using UnityEngine;
-
-public class MillRotor : MonoBehaviour
-{
- public float rotationSpeed = 90f;
-
- private float acceleration = 10f;
-
- private float currentSpeed;
-
- private DayNightCycle daynight;
-
- private void Start()
- {
- daynight = DayNightCycle.Instance;
- }
-
- private void Update()
- {
- if (daynight.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- if (currentSpeed < rotationSpeed)
- {
- currentSpeed += acceleration * Time.deltaTime;
- }
- if (currentSpeed > rotationSpeed)
- {
- currentSpeed = rotationSpeed;
- }
- }
- else if (daynight.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- if (currentSpeed > 0f)
- {
- currentSpeed -= acceleration * Time.deltaTime;
- }
- if (currentSpeed < 0f)
- {
- currentSpeed = 0f;
- }
- }
- base.transform.Rotate(0f, currentSpeed * Time.deltaTime, 0f, Space.Self);
- }
-}
diff --git a/GameCode/Mill_ImprovedPlow.cs b/GameCode/Mill_ImprovedPlow.cs
deleted file mode 100644
index 7508fc1..0000000
--- a/GameCode/Mill_ImprovedPlow.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class Mill_ImprovedPlow : MonoBehaviour
-{
- [SerializeField]
- private BuildSlot buildSlot;
-
- public Mesh lvl2Mesh;
-
- public Mesh lvl3Mesh;
-
- private void OnEnable()
- {
- buildSlot.upgrades[1].upgradeBranches[0].replacementMesh = lvl2Mesh;
- buildSlot.upgrades[2].upgradeBranches[0].replacementMesh = lvl3Mesh;
- foreach (BuildSlot.UpgradeBranch upgradeBranch in buildSlot.Upgrades[1].upgradeBranches)
- {
- upgradeBranch.goldIncomeChange++;
- }
- foreach (BuildSlot.UpgradeBranch upgradeBranch2 in buildSlot.Upgrades[2].upgradeBranches)
- {
- upgradeBranch2.goldIncomeChange++;
- }
- Object.Destroy(base.gameObject);
- }
-}
diff --git a/GameCode/Mill_ImprovementExplosiveTrap.cs b/GameCode/Mill_ImprovementExplosiveTrap.cs
deleted file mode 100644
index 2b087fd..0000000
--- a/GameCode/Mill_ImprovementExplosiveTrap.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using UnityEngine;
-
-public class Mill_ImprovementExplosiveTrap : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [SerializeField]
- private Weapon weaponLvl1;
-
- [SerializeField]
- private Weapon weaponLvl2;
-
- [SerializeField]
- private Weapon weaponLvl3;
-
- [SerializeField]
- private Hp hpOfBuilding;
-
- [SerializeField]
- private BuildSlot buildSlot;
-
- public Mesh lvl2Mesh;
-
- public Mesh lvl3Mesh;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- SetCorrectWeapon();
- }
-
- private void OnEnable()
- {
- buildSlot.upgrades[1].upgradeBranches[0].replacementMesh = lvl2Mesh;
- buildSlot.upgrades[2].upgradeBranches[0].replacementMesh = lvl3Mesh;
- SetCorrectWeapon();
- }
-
- private void SetCorrectWeapon()
- {
- if (buildSlot.Level == 1)
- {
- hpOfBuilding.SpwanAttackOnDeath = weaponLvl1;
- }
- else if (buildSlot.Level == 2)
- {
- hpOfBuilding.SpwanAttackOnDeath = weaponLvl2;
- }
- else if (buildSlot.Level == 3)
- {
- hpOfBuilding.SpwanAttackOnDeath = weaponLvl3;
- }
- }
-}
diff --git a/GameCode/Mill_ImprovementWindSpirits.cs b/GameCode/Mill_ImprovementWindSpirits.cs
deleted file mode 100644
index 824352e..0000000
--- a/GameCode/Mill_ImprovementWindSpirits.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class Mill_ImprovementWindSpirits : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- [SerializeField]
- private BuildSlot buildSlot;
-
- [SerializeField]
- private float blockIntervalLvl1 = 1f;
-
- [SerializeField]
- private float blockIntervalLvl2 = 0.5f;
-
- [SerializeField]
- private float blockIntervalLvl3 = 0.25f;
-
- public Mesh lvl2Mesh;
-
- public Mesh lvl3Mesh;
-
- private float blockInterval = 1f;
-
- [SerializeField]
- private float range = 30f;
-
- [SerializeField]
- private GameObject fxBlockArrow;
-
- private float cooldown;
-
- private TagManager tagManager;
-
- private List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();
-
- private List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
-
- private void Start()
- {
- tagManager = TagManager.instance;
- cooldown = Random.value * blockInterval;
- mustHaveTags.Add(TagManager.ETag.BlockableEnemyProjectile);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- private void Update()
- {
- cooldown -= Time.deltaTime;
- while (cooldown <= 0f)
- {
- BlockAnArrow();
- cooldown += blockInterval;
- }
- }
-
- private void BlockAnArrow()
- {
- TaggedObject taggedObject = tagManager.FindClosestTaggedObjectWithTags(base.transform.position, mustHaveTags, mayNotHaveTags);
- if (!(taggedObject == null) && (taggedObject.transform.position - base.transform.position).magnitude < range)
- {
- if ((bool)fxBlockArrow)
- {
- Object.Instantiate(fxBlockArrow, taggedObject.transform.position, Quaternion.identity);
- }
- Object.Destroy(taggedObject.gameObject);
- }
- }
-
- private void OnEnable()
- {
- buildSlot.upgrades[1].upgradeBranches[0].replacementMesh = lvl2Mesh;
- buildSlot.upgrades[2].upgradeBranches[0].replacementMesh = lvl3Mesh;
- SetCorrectWeapon();
- }
-
- public void OnDusk()
- {
- SetCorrectWeapon();
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- private void SetCorrectWeapon()
- {
- if (buildSlot.Level == 1)
- {
- blockInterval = blockIntervalLvl1;
- }
- else if (buildSlot.Level == 2)
- {
- blockInterval = blockIntervalLvl2;
- }
- else if (buildSlot.Level == 3)
- {
- blockInterval = blockIntervalLvl3;
- }
- }
-}
diff --git a/GameCode/Mill_Improvement_Scarecrows.cs b/GameCode/Mill_Improvement_Scarecrows.cs
deleted file mode 100644
index 7a7a51e..0000000
--- a/GameCode/Mill_Improvement_Scarecrows.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class Mill_Improvement_Scarecrows : MonoBehaviour
-{
- [SerializeField]
- private BuildSlot buildSlot;
-
- public Mesh lvl2Mesh;
-
- public Mesh lvl3Mesh;
-
- private void OnEnable()
- {
- buildSlot.upgrades[1].upgradeBranches[0].replacementMesh = lvl2Mesh;
- buildSlot.upgrades[2].upgradeBranches[0].replacementMesh = lvl3Mesh;
- foreach (BuildSlot item in buildSlot.BuiltSlotsThatRelyOnThisBuilding)
- {
- Scarecrow[] components = item.GetComponents<Scarecrow>();
- foreach (Scarecrow scarecrow in components)
- {
- scarecrow.scareCrow.SetActive(value: true);
- item.Upgrades[0].upgradeBranches[0].objectsToActivate.Add(scarecrow.scareCrow);
- }
- }
- }
-}
diff --git a/GameCode/MineShaft.cs b/GameCode/MineShaft.cs
deleted file mode 100644
index 6ac6218..0000000
--- a/GameCode/MineShaft.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class MineShaft : IncomeModifyer
-{
- public int incomeReductionPerTurn = 1;
-
- public int minimumIncome = 1;
-
- private bool firstNightPassed;
-
- private PlayerManager playerManager;
-
- public Transform mineEntrance;
-
- [SerializeField]
- private float mineEnterDistance = 3f;
-
- [SerializeField]
- private float mineEnterAngleDotProd = 0.8f;
-
- [SerializeField]
- private float playerEnterTimerMax = 0.75f;
-
- [SerializeField]
- private float cooldownAfterTeleport = 1f;
-
- private float playerEnterTimer;
-
- public static List<MineShaft> allMineShafts = new List<MineShaft>();
-
- private BuildSlot myBuildSlot;
-
- private float cooldown;
-
- public BuildSlot MyBuildSlot => myBuildSlot;
-
- public void SetCooldown(float _cooldown)
- {
- cooldown = _cooldown;
- }
-
- private void Start()
- {
- playerManager = PlayerManager.Instance;
- myBuildSlot = GetComponent<BuildSlot>();
- playerEnterTimer = playerEnterTimerMax;
- if (!allMineShafts.Contains(this))
- {
- allMineShafts.Add(this);
- }
- for (int num = allMineShafts.Count - 1; num >= 0; num--)
- {
- if (allMineShafts[num] == null)
- {
- allMineShafts.RemoveAt(num);
- }
- }
- SortAllMineShafts();
- }
-
- private void SortAllMineShafts()
- {
- allMineShafts.Sort(delegate(MineShaft mineShaft1, MineShaft mineShaft2)
- {
- Vector3 position = mineShaft1.gameObject.transform.position;
- Vector3 position2 = mineShaft2.gameObject.transform.position;
- int num = position.z.CompareTo(position2.z);
- if (num != 0)
- {
- return num;
- }
- int num2 = position.x.CompareTo(position2.x);
- return (num2 != 0) ? num2 : position.y.CompareTo(position2.y);
- });
- }
-
- public static MineShaft FindNextMineShaftAfter(int _i)
- {
- for (int num = (_i + 1) % allMineShafts.Count; num != _i; num = (num + 1) % allMineShafts.Count)
- {
- MineShaft mineShaft = allMineShafts[num];
- if (mineShaft.MyBuildSlot.Level > 0 && mineShaft.buildingInteractor.buildingHP.TaggedObj.Tags.Contains(TagManager.ETag.AUTO_Alive))
- {
- return mineShaft;
- }
- }
- return null;
- }
-
- private void Update()
- {
- cooldown -= Time.deltaTime;
- if (MyBuildSlot.Level <= 0 || !buildingInteractor.buildingHP.TaggedObj.Tags.Contains(TagManager.ETag.AUTO_Alive) || cooldown > 0f)
- {
- return;
- }
- bool flag = false;
- PlayerMovement[] registeredPlayers = playerManager.RegisteredPlayers;
- foreach (PlayerMovement playerMovement in registeredPlayers)
- {
- if (!((mineEntrance.position - playerMovement.transform.position).magnitude < mineEnterDistance) || !(Vector3.Dot(mineEntrance.localToWorldMatrix.MultiplyVector(new Vector3(0f, 0f, 1f)).normalized, playerMovement.Velocity.normalized) > mineEnterAngleDotProd))
- {
- continue;
- }
- playerEnterTimer -= Time.deltaTime;
- flag = true;
- if (playerEnterTimer <= 0f)
- {
- MineShaft mineShaft = FindNextMineShaftAfter(allMineShafts.IndexOf(this));
- if ((bool)mineShaft)
- {
- Vector3 position = mineShaft.transform.position;
- position += mineShaft.mineEntrance.localToWorldMatrix.MultiplyVector(new Vector3(0f, 0f, -1f));
- playerMovement.TeleportTo(position);
- mineShaft.SetCooldown(cooldownAfterTeleport);
- SetCooldown(cooldownAfterTeleport);
- }
- }
- }
- if (!flag)
- {
- playerEnterTimer = playerEnterTimerMax;
- }
- }
-
- public override void OnDawn()
- {
- if (myBuildSlot.Level > 0 && !buildingInteractor.KnockedOutTonight)
- {
- if (!firstNightPassed)
- {
- firstNightPassed = true;
- }
- else
- {
- myBuildSlot.GoldIncome = Mathf.Max(myBuildSlot.GoldIncome - incomeReductionPerTurn, minimumIncome);
- }
- }
- }
-}
diff --git a/GameCode/MusicManager.cs b/GameCode/MusicManager.cs
deleted file mode 100644
index 9b779bb..0000000
--- a/GameCode/MusicManager.cs
+++ /dev/null
@@ -1,163 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class MusicManager : MonoBehaviour
-{
- [Serializable]
- public class OverrideVolume
- {
- public AudioClip audioClip;
-
- [Range(0f, 1f)]
- public float volume;
-
- public OverrideVolume(AudioClip clip, float volume)
- {
- audioClip = clip;
- this.volume = volume;
- }
- }
-
- public static MusicManager instance;
-
- [SerializeField]
- private AudioSource audioSource;
-
- private AudioClip currentMusic;
-
- private Coroutine fadeCoroutine;
-
- private float currentVolume;
-
- [SerializeField]
- private AudioClip[] resumeableMusicClips;
-
- private Dictionary<AudioClip, float> resumeableMusicPlaybackPositions = new Dictionary<AudioClip, float>();
-
- [SerializeField]
- private List<OverrideVolume> overrideVolumes = new List<OverrideVolume>();
-
- private float CurrentVolume
- {
- get
- {
- return currentVolume;
- }
- set
- {
- float num = value;
- currentVolume = value;
- OverrideVolume overrideVolume = overrideVolumes.Find((OverrideVolume o) => o.audioClip == currentMusic);
- if (overrideVolume != null)
- {
- num *= overrideVolume.volume;
- }
- audioSource.volume = Mathf.Pow(num, 2f);
- }
- }
-
- private void Awake()
- {
- if (instance != null)
- {
- UnityEngine.Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- CurrentVolume = 0f;
- AudioClip[] array = resumeableMusicClips;
- foreach (AudioClip key in array)
- {
- resumeableMusicPlaybackPositions.Add(key, 0f);
- }
- }
-
- public void PlayMusic(AudioClip music, float fadeDuration = 4f)
- {
- if (currentMusic == music)
- {
- return;
- }
- if (music == null && currentMusic != null)
- {
- StartCoroutine(FadeOutAndStop(fadeDuration));
- return;
- }
- if (fadeCoroutine != null)
- {
- StopCoroutine(fadeCoroutine);
- }
- fadeCoroutine = StartCoroutine(FadeOutChangeMusicFadeIn(music, fadeDuration));
- }
-
- private IEnumerator FadeOutChangeMusicFadeIn(AudioClip newMusic, float fadeDuration)
- {
- if (currentMusic != null)
- {
- if (resumeableMusicPlaybackPositions.ContainsKey(currentMusic))
- {
- resumeableMusicPlaybackPositions[currentMusic] = audioSource.time;
- }
- yield return StartCoroutine(FadeOut(fadeDuration));
- }
- CurrentVolume = 0f;
- audioSource.clip = newMusic;
- currentMusic = newMusic;
- if (resumeableMusicPlaybackPositions.ContainsKey(newMusic))
- {
- audioSource.time = resumeableMusicPlaybackPositions[newMusic];
- }
- else
- {
- audioSource.time = 0f;
- }
- audioSource.Play();
- yield return null;
- yield return StartCoroutine(FadeIn(fadeDuration));
- }
-
- private IEnumerator FadeOutAndStop(float fadeDuration)
- {
- yield return StartCoroutine(FadeOut(fadeDuration));
- if (currentMusic != null && resumeableMusicPlaybackPositions.ContainsKey(currentMusic))
- {
- resumeableMusicPlaybackPositions[currentMusic] = audioSource.time;
- }
- audioSource.Stop();
- currentMusic = null;
- }
-
- private IEnumerator FadeOut(float fadeDuration)
- {
- if (fadeDuration <= 0f)
- {
- CurrentVolume = 0f;
- yield break;
- }
- float fadeSpeed = 1f / fadeDuration;
- while (CurrentVolume > 0f)
- {
- CurrentVolume -= fadeSpeed * Time.unscaledDeltaTime;
- yield return null;
- }
- CurrentVolume = 0f;
- }
-
- private IEnumerator FadeIn(float fadeDuration)
- {
- if (fadeDuration <= 0f)
- {
- CurrentVolume = 1f;
- yield break;
- }
- float fadeSpeed = 1f / fadeDuration;
- while (CurrentVolume < 1f)
- {
- CurrentVolume += fadeSpeed * Time.unscaledDeltaTime;
- yield return null;
- }
- CurrentVolume = 1f;
- }
-}
diff --git a/GameCode/NightCall.cs b/GameCode/NightCall.cs
deleted file mode 100644
index 2db1c18..0000000
--- a/GameCode/NightCall.cs
+++ /dev/null
@@ -1,140 +0,0 @@
-using MoreMountains.Feedbacks;
-using MPUIKIT;
-using Rewired;
-using TMPro;
-using UnityEngine;
-
-public class NightCall : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public static NightCall instance;
-
- public float nightCallTime = 1f;
-
- public MPImage targetGraphic;
-
- public MPImage targetFill;
-
- public MPImage background;
-
- public TextMeshProUGUI nightCallCueText;
-
- public TextMeshProUGUI nightCallTimeText;
-
- public MMF_Player fullFeedback;
-
- public AnimationCurve textCueScaleCurve;
-
- public RectTransform scaleParent;
-
- public AudioSource nightCallAudio;
-
- private Player input;
-
- private bool active = true;
-
- private float currentFill;
-
- private PlayerInteraction player;
-
- private Color defaultBackgroundColor;
-
- private float nightCallTargetVolume;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- input = ReInput.players.GetPlayer(0);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- targetFill.transform.localScale = Vector3.zero;
- player = PlayerInteraction.instance;
- defaultBackgroundColor = background.color;
- nightCallTargetVolume = nightCallAudio.volume;
- }
-
- private void Update()
- {
- UpdateFill();
- }
-
- public void UpdateFill()
- {
- if (active)
- {
- if (SettingsManager.Instance.UseLargeInGameUI)
- {
- scaleParent.localScale = Vector3.one * 1.5f;
- }
- else
- {
- scaleParent.localScale = Vector3.one;
- }
- if (input.GetButtonDown("Call Night") && player.IsFreeToCallNight)
- {
- nightCallAudio.Stop();
- nightCallAudio.PlayOneShot(ThronefallAudioManager.Instance.audioContent.NightCallStart, 0.45f);
- }
- if (input.GetButton("Call Night") && player.IsFreeToCallNight)
- {
- currentFill += Time.deltaTime * (1f / nightCallTime);
- }
- else
- {
- currentFill -= Time.deltaTime * 2f * (1f / nightCallTime);
- }
- if (currentFill >= 1f)
- {
- nightCallAudio.PlayOneShot(ThronefallAudioManager.Instance.audioContent.NightCallComplete, 0.8f);
- DayNightCycle.Instance.SwitchToNight();
- fullFeedback.PlayFeedbacks();
- active = false;
- }
- if (currentFill > 0f)
- {
- nightCallCueText.gameObject.SetActive(value: true);
- nightCallTimeText.text = (nightCallTime * (1f - currentFill)).ToString("F1") + "s";
- nightCallCueText.transform.localScale = Vector3.one * textCueScaleCurve.Evaluate(Mathf.InverseLerp(0f, 0.15f, currentFill));
- nightCallAudio.volume = Mathf.Lerp(0f, nightCallTargetVolume, Mathf.InverseLerp(0f, 0.3f, currentFill));
- }
- else
- {
- nightCallCueText.gameObject.SetActive(value: false);
- nightCallCueText.transform.localScale = Vector3.one;
- }
- defaultBackgroundColor.a = Mathf.InverseLerp(0f, 0.4f, currentFill);
- background.color = defaultBackgroundColor;
- currentFill = Mathf.Clamp01(currentFill);
- targetGraphic.fillAmount = currentFill;
- }
- else if (currentFill > 0f)
- {
- currentFill -= Time.deltaTime * 2f;
- defaultBackgroundColor.a = Mathf.InverseLerp(0f, 0.4f, currentFill);
- background.color = defaultBackgroundColor;
- }
- }
-
- public void OnDawn_AfterSunrise()
- {
- targetFill.transform.localScale = Vector3.zero;
- targetGraphic.transform.localScale = Vector3.one;
- targetGraphic.fillAmount = 0f;
- nightCallCueText.gameObject.SetActive(value: false);
- nightCallCueText.transform.localScale = Vector3.one;
- defaultBackgroundColor.a = 0f;
- background.color = defaultBackgroundColor;
- currentFill = 0f;
- active = true;
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- }
-}
diff --git a/GameCode/NightLight.cs b/GameCode/NightLight.cs
deleted file mode 100644
index affc9b0..0000000
--- a/GameCode/NightLight.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-[RequireComponent(typeof(Light))]
-public class NightLight : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public float targetIntensity = 0.75f;
-
- public float intensityFlickerRange = 0.15f;
-
- public float distanceFlickerRange = 5f;
-
- public float flickerSpeed = 1f;
-
- public float fadeInTime = 2.5f;
-
- public float fadeOutTime = 1f;
-
- public ParticleSystem flames;
-
- private float transitionTime;
-
- private float targetRange;
-
- private Light targetLight;
-
- private bool fullyFadedIn;
-
- private float currentIntensity => targetIntensity + Mathf.Lerp(0f - intensityFlickerRange, intensityFlickerRange, Mathf.PerlinNoise(Time.time * flickerSpeed, Time.time * flickerSpeed));
-
- private float currentRange => targetRange + Mathf.Lerp(0f - distanceFlickerRange, distanceFlickerRange, Mathf.PerlinNoise(Time.time * flickerSpeed, Time.time * flickerSpeed));
-
- private void Start()
- {
- transitionTime = DayNightCycle.Instance.sunriseTime;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- targetLight = GetComponent<Light>();
- targetLight.intensity = 0f;
- targetRange = targetLight.range;
- base.gameObject.SetActive(value: false);
- }
-
- private void Update()
- {
- if (fullyFadedIn)
- {
- targetLight.intensity = currentIntensity;
- }
- targetLight.range = currentRange;
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- StopAllCoroutines();
- StartCoroutine(FadeLightOut());
- }
-
- public void OnDusk()
- {
- base.gameObject.SetActive(value: true);
- StopAllCoroutines();
- StartCoroutine(FadeLightIn());
- }
-
- private IEnumerator FadeLightIn()
- {
- fullyFadedIn = false;
- float clock = 0f;
- yield return new WaitForSeconds(transitionTime * 0.1f);
- flames.Play();
- while (clock < fadeInTime)
- {
- clock += Time.deltaTime;
- targetLight.intensity = currentIntensity * Mathf.InverseLerp(0f, fadeInTime, clock);
- yield return null;
- }
- targetLight.intensity = targetIntensity;
- fullyFadedIn = true;
- }
-
- private IEnumerator FadeLightOut()
- {
- float clock = 0f;
- flames.Stop();
- while (clock < fadeOutTime)
- {
- clock += Time.deltaTime;
- targetLight.intensity = currentIntensity * Mathf.InverseLerp(fadeOutTime, 0f, clock);
- yield return null;
- }
- targetLight.intensity = 0f;
- base.gameObject.SetActive(value: false);
- }
-}
diff --git a/GameCode/Nighthorn.cs b/GameCode/Nighthorn.cs
deleted file mode 100644
index f89fcd5..0000000
--- a/GameCode/Nighthorn.cs
+++ /dev/null
@@ -1,168 +0,0 @@
-using MoreMountains.Feedbacks;
-using UnityEngine;
-
-public class Nighthorn : InteractorBase, DayNightCycle.IDaytimeSensitive
-{
- public static Nighthorn instance;
-
- public GameObject nightCue;
-
- public GameObject harvestCue;
-
- public string autoCollectGoldTooltip;
-
- public string startNightTooltip;
-
- public string startPreFinalNightTooltip;
-
- public string startFinalNightTooltip;
-
- public MMF_Player onBlowFeedback;
-
- private TutorialManager tutorialManager;
-
- public int CoinCountToBeHarvested
- {
- get
- {
- int num = 0;
- foreach (BuildingInteractor playerBuildingInteractor in TagManager.instance.playerBuildingInteractors)
- {
- if ((bool)playerBuildingInteractor.coinSpawner)
- {
- num += playerBuildingInteractor.coinSpawner.CoinsLeft;
- }
- if (playerBuildingInteractor.canBeHarvested)
- {
- num += playerBuildingInteractor.GoldIncome;
- }
- }
- return num;
- }
- }
-
- public bool AllCoinsHarvested
- {
- get
- {
- bool result = true;
- foreach (BuildingInteractor playerBuildingInteractor in TagManager.instance.playerBuildingInteractors)
- {
- if (playerBuildingInteractor.canBeHarvested)
- {
- result = false;
- break;
- }
- }
- foreach (Coin freeCoin in TagManager.instance.freeCoins)
- {
- if (freeCoin.IsFree)
- {
- return false;
- }
- }
- return result;
- }
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- public override string ReturnTooltip()
- {
- if (!AllCoinsHarvested)
- {
- return autoCollectGoldTooltip;
- }
- if (EnemySpawner.instance.PreFinalWaveComingUp)
- {
- return startPreFinalNightTooltip;
- }
- if (EnemySpawner.instance.FinalWaveComingUp)
- {
- return startFinalNightTooltip;
- }
- return startNightTooltip;
- }
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- tutorialManager = TutorialManager.instance;
- }
-
- public override void InteractionBegin(PlayerInteraction player)
- {
- if ((bool)tutorialManager && !TutorialManager.AllowStartingTheNight)
- {
- return;
- }
- if (AllCoinsHarvested)
- {
- onBlowFeedback.PlayFeedbacks();
- DayNightCycle.Instance.SwitchToNight();
- return;
- }
- foreach (BuildingInteractor playerBuildingInteractor in TagManager.instance.playerBuildingInteractors)
- {
- playerBuildingInteractor.Harvest(player);
- }
- foreach (Coin freeCoin in TagManager.instance.freeCoins)
- {
- if (freeCoin.IsFree)
- {
- freeCoin.SetTarget(player);
- }
- }
- ActivateAndRefreshCues();
- }
-
- public void OnDawn_AfterSunrise()
- {
- base.gameObject.SetActive(value: true);
- }
-
- public void OnDusk()
- {
- base.gameObject.SetActive(value: false);
- DeactivateCues();
- }
-
- public override void Focus(PlayerInteraction player)
- {
- ActivateAndRefreshCues();
- }
-
- public override void Unfocus(PlayerInteraction player)
- {
- DeactivateCues();
- EnemySpawner.instance.EnemySpawnersHornUnFocussed();
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void ActivateAndRefreshCues()
- {
- if (AllCoinsHarvested)
- {
- nightCue.SetActive(value: true);
- harvestCue.SetActive(value: false);
- EnemySpawner.instance.EnemySpawnersHornFocussed();
- }
- else
- {
- nightCue.SetActive(value: false);
- harvestCue.SetActive(value: true);
- }
- }
-
- public void DeactivateCues()
- {
- nightCue.SetActive(value: false);
- harvestCue.SetActive(value: false);
- }
-}
diff --git a/GameCode/NightscoreUI.cs b/GameCode/NightscoreUI.cs
deleted file mode 100644
index 7150c48..0000000
--- a/GameCode/NightscoreUI.cs
+++ /dev/null
@@ -1,295 +0,0 @@
-using System.Collections;
-using I2.Loc;
-using MPUIKIT;
-using TMPro;
-using UnityEngine;
-
-public class NightscoreUI : MonoBehaviour
-{
- public GameObject nightScorePanel;
-
- public TextMeshProUGUI baseScore;
-
- public TextMeshProUGUI timeBonus;
-
- public TextMeshProUGUI protectionPercentage;
-
- public TextMeshProUGUI protectionScore;
-
- public TextMeshProUGUI overallScore;
-
- public AudioSource pointSFXSource;
-
- [Header("ANIMATION")]
- public MPImage backgroundImage;
-
- public RectTransform content;
-
- public RectTransform nightSurviveText;
-
- public RectTransform nightSurviveNumber;
-
- public RectTransform timeText;
-
- public RectTransform timeNumber;
-
- public RectTransform protectionText;
-
- public RectTransform protectionNumber;
-
- public RectTransform overallScoreBG;
-
- public RectTransform overallScoreNumber;
-
- public AnimationCurve popCurve;
-
- public AnimationCurve expandCurve;
-
- public AnimationCurve bumpCurve;
-
- public AnimationCurve simpleQuad;
-
- public static NightscoreUI instance;
-
- private float initialWaitTime = 3f;
-
- private float completeWaitTime = 3f;
-
- private float buildUpSFXVol = 0.8f;
-
- private float clock;
-
- private bool shown;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- nightScorePanel.SetActive(value: false);
- ScoreManager.Instance.OnNightScoreAdd.AddListener(ShowNightScore);
- UIFrameManager.instance.onFrameOpen.AddListener(StopPointFillSoundOnPause);
- }
-
- private void StopPointFillSoundOnPause()
- {
- pointSFXSource.Stop();
- }
-
- public void ShowNightScore(int _baseScore, int _timeBonus, float _protectionPercentage, int _protectionBonus)
- {
- if (EnemySpawner.instance.Wavenumber < EnemySpawner.instance.waves.Count - 1)
- {
- shown = true;
- StopAllCoroutines();
- clock = 0f;
- StartCoroutine(PlayPopUpAnimation(_baseScore, _timeBonus, _protectionPercentage, _protectionBonus));
- }
- }
-
- public void HideNightScore()
- {
- shown = false;
- pointSFXSource.Stop();
- StopAllCoroutines();
- StartCoroutine(PlayHideAnimation());
- }
-
- private IEnumerator PlayPopUpAnimation(int basescore, int timebonus, float protectionpercent, int protectionbonus)
- {
- nightScorePanel.SetActive(value: true);
- Vector2 contentSizeDelta = content.sizeDelta;
- int currentScore = ScoreManager.Instance.CurrentScore - basescore - timebonus - protectionbonus;
- int nextScore = currentScore;
- baseScore.text = "+" + basescore;
- timeBonus.text = "+" + timebonus;
- protectionPercentage.text = LocalizationManager.GetTranslation("Menu/Realm") + " " + Mathf.RoundToInt(protectionpercent * 100f) + "% " + LocalizationManager.GetTranslation("Menu/Protected");
- protectionScore.text = "+" + protectionbonus;
- overallScore.text = currentScore.ToString();
- contentSizeDelta.y = 0f;
- content.sizeDelta = contentSizeDelta;
- nightSurviveText.localScale = Vector3.zero;
- nightSurviveNumber.localScale = Vector3.zero;
- timeText.localScale = Vector3.zero;
- timeNumber.localScale = Vector3.zero;
- protectionText.localScale = Vector3.zero;
- protectionNumber.localScale = Vector3.zero;
- overallScoreBG.localScale = Vector3.zero;
- overallScoreNumber.localScale = Vector3.zero;
- yield return new WaitForSeconds(initialWaitTime);
- float animTime2 = 0.5f;
- float timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- overallScoreBG.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- overallScoreNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- overallScoreBG.localScale = Vector3.one;
- overallScoreNumber.localScale = Vector3.one;
- yield return new WaitForSeconds(0.25f);
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- content.sizeDelta = contentSizeDelta + Vector2.up * 55f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta + Vector2.up * 55f;
- contentSizeDelta = content.sizeDelta;
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- nightSurviveText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- nightSurviveNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- nightSurviveText.localScale = Vector3.one;
- nightSurviveNumber.localScale = Vector3.one;
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- content.sizeDelta = contentSizeDelta + Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta + Vector2.up * 30f;
- contentSizeDelta = content.sizeDelta;
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- protectionText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- protectionNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- protectionText.localScale = Vector3.one;
- protectionNumber.localScale = Vector3.one;
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- content.sizeDelta = contentSizeDelta + Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta + Vector2.up * 30f;
- _ = content.sizeDelta;
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildC, buildUpSFXVol);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- timeText.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- timeNumber.localScale = Vector3.one * popCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- timeText.localScale = Vector3.one;
- timeNumber.localScale = Vector3.one;
- pointSFXSource.Play();
- animTime2 = 1.5f;
- timer2 = 0f;
- nextScore += basescore + protectionbonus + timebonus;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- overallScore.text = Mathf.RoundToInt(Mathf.Lerp(currentScore, nextScore, Mathf.InverseLerp(0f, animTime2, timer2))).ToString();
- yield return null;
- }
- currentScore = nextScore;
- overallScore.text = currentScore.ToString();
- pointSFXSource.Stop();
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointLockInMinor);
- animTime2 = 0.5f;
- timer2 = 0f;
- while (timer2 < animTime2)
- {
- timer2 += Time.deltaTime;
- overallScoreBG.localScale = Vector3.one * bumpCurve.Evaluate(Mathf.InverseLerp(0f, animTime2, timer2));
- yield return null;
- }
- overallScoreBG.localScale = Vector3.one;
- yield return new WaitForSeconds(completeWaitTime);
- HideNightScore();
- }
-
- private IEnumerator PlayHideAnimation()
- {
- pointSFXSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PointScreenBuildB, buildUpSFXVol);
- Vector2 contentSizeDelta3 = content.sizeDelta;
- nightSurviveText.localScale = Vector3.one;
- nightSurviveNumber.localScale = Vector3.one;
- timeText.localScale = Vector3.one;
- timeNumber.localScale = Vector3.one;
- protectionText.localScale = Vector3.one;
- protectionNumber.localScale = Vector3.one;
- overallScoreBG.localScale = Vector3.one;
- overallScoreNumber.localScale = Vector3.one;
- timeText.localScale = Vector3.zero;
- timeNumber.localScale = Vector3.zero;
- float animTime4 = 0.4f;
- float timer4 = 0f;
- while (timer4 < animTime4)
- {
- timer4 += Time.deltaTime;
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f;
- contentSizeDelta3 = content.sizeDelta;
- protectionText.localScale = Vector3.zero;
- protectionNumber.localScale = Vector3.zero;
- animTime4 = 0.4f;
- timer4 = 0f;
- while (timer4 < animTime4)
- {
- timer4 += Time.deltaTime;
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 30f;
- contentSizeDelta3 = content.sizeDelta;
- nightSurviveText.localScale = Vector3.zero;
- nightSurviveNumber.localScale = Vector3.zero;
- animTime4 = 0.4f;
- timer4 = 0f;
- while (timer4 < animTime4)
- {
- timer4 += Time.deltaTime;
- if (Mathf.InverseLerp(0f, animTime4, timer4) > 0.425f)
- {
- backgroundImage.enabled = false;
- }
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 55f * expandCurve.Evaluate(Mathf.InverseLerp(0f, animTime4, timer4));
- yield return null;
- }
- content.sizeDelta = contentSizeDelta3 - Vector2.up * 55f;
- backgroundImage.enabled = true;
- animTime4 = 0.2f;
- timer4 = 0f;
- while (timer4 < animTime4)
- {
- timer4 += Time.deltaTime;
- overallScoreNumber.localScale = Vector3.one * simpleQuad.Evaluate(Mathf.InverseLerp(animTime4, 0f, timer4));
- overallScoreBG.localScale = Vector3.one * simpleQuad.Evaluate(Mathf.InverseLerp(animTime4, 0f, timer4));
- yield return null;
- }
- overallScoreNumber.localScale = Vector3.zero;
- overallScoreBG.localScale = Vector2.zero;
- nightScorePanel.SetActive(value: false);
- }
-}
diff --git a/GameCode/OnDamageFeedbackHandler.cs b/GameCode/OnDamageFeedbackHandler.cs
deleted file mode 100644
index 82aed25..0000000
--- a/GameCode/OnDamageFeedbackHandler.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using UnityEngine;
-
-public class OnDamageFeedbackHandler : MonoBehaviour
-{
- public Hp target;
-
- public MaterialFlasherFX flasher;
-
- public GameObject onDmgByPlayerFX;
-
- private void Start()
- {
- target.OnReceiveDamage.AddListener(TakeDamage);
- }
-
- private void TakeDamage(bool causedByPlayer)
- {
- if (causedByPlayer)
- {
- Object.Instantiate(onDmgByPlayerFX, target.transform.position + Vector3.up * target.hitFeedbackHeight, onDmgByPlayerFX.transform.rotation);
- flasher.TriggerFlash(special: true);
- }
- else
- {
- flasher.TriggerFlash(special: false);
- }
- }
-}
diff --git a/GameCode/OneShotAnimationBase.cs b/GameCode/OneShotAnimationBase.cs
deleted file mode 100644
index 7967415..0000000
--- a/GameCode/OneShotAnimationBase.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-public abstract class OneShotAnimationBase : MonoBehaviour
-{
- public abstract void Trigger();
-}
diff --git a/GameCode/PathMesher.cs b/GameCode/PathMesher.cs
deleted file mode 100644
index 244ee39..0000000
--- a/GameCode/PathMesher.cs
+++ /dev/null
@@ -1,339 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-[RequireComponent(typeof(MeshRenderer))]
-[RequireComponent(typeof(MeshFilter))]
-[ExecuteInEditMode]
-public class PathMesher : MonoBehaviour
-{
- public enum UnwrapMode
- {
- XZWorldSpace,
- River
- }
-
- [Serializable]
- public class PathPoint
- {
- public Vector3 position;
-
- public float width;
-
- public PathPoint(Vector3 _position, float _width)
- {
- position = _position;
- width = _width;
- }
- }
-
- private MeshFilter meshFilter;
-
- private MeshCollider meshCollider;
-
- public int subdivisions = 3;
-
- public float vertDistance = 0.2f;
-
- public int endCapSubdivisions = 3;
-
- public float widthWhobble = 0.5f;
-
- public float positionWhobble = 0.5f;
-
- public UnwrapMode uvUnwrapMode;
-
- public float uvScale = 0.01f;
-
- public bool topNormalsAlwaysFaceDirectlyUp;
-
- public Vector3 extrudeDownOffset;
-
- public bool vertical;
-
- public bool loop;
-
- public bool flipNormals;
-
- private List<FakeTransorm> transformsRemember = new List<FakeTransorm>();
-
- private List<PathPoint> pathPoints = new List<PathPoint>();
-
- public void UpdateMesh()
- {
- pathPoints.Clear();
- for (int i = 0; i < base.transform.childCount; i++)
- {
- Transform child = base.transform.GetChild(i);
- pathPoints.Add(new PathPoint(child.localPosition, child.localScale.x));
- }
- if (pathPoints.Count < 2)
- {
- return;
- }
- if (loop)
- {
- Transform child2 = base.transform.GetChild(0);
- pathPoints.Add(new PathPoint(child2.localPosition, child2.localScale.x));
- }
- meshFilter = GetComponent<MeshFilter>();
- meshCollider = GetComponent<MeshCollider>();
- Mesh mesh = new Mesh();
- List<Vector3> list = new List<Vector3>();
- List<Vector2> uvs = new List<Vector2>();
- List<int> list2 = new List<int>();
- List<int> list3 = new List<int>();
- List<PathPoint> _pathOriginal = new List<PathPoint>();
- InterpolateModifyer(pathPoints, _pathOriginal, subdivisions);
- if (vertDistance > 0.1f)
- {
- ResampleModifyer(ref _pathOriginal, vertDistance, vertDistance / 10f);
- }
- AddRoundedEndsModifyer(_pathOriginal, endCapSubdivisions);
- WhobbleModifyer(_pathOriginal, widthWhobble, positionWhobble);
- float num = 0f;
- for (int j = 0; j < _pathOriginal.Count; j++)
- {
- if (_pathOriginal.Count <= 1)
- {
- break;
- }
- Vector3 forwards = GetForwards(j, _pathOriginal);
- Vector3 vector = Quaternion.Euler(0f, 90f, 0f) * forwards * _pathOriginal[j].width;
- Vector3 vector2 = Quaternion.Euler(0f, -90f, 0f) * forwards * _pathOriginal[j].width;
- if (vertical)
- {
- vector = Vector3.up * _pathOriginal[j].width;
- vector2 = Vector3.down * _pathOriginal[j].width;
- }
- AddUnwrappedVertTop(_pathOriginal[j].position + vector, list, uvs, num, 0f - _pathOriginal[j].width);
- AddUnwrappedVertTop(_pathOriginal[j].position + vector2, list, uvs, num, _pathOriginal[j].width);
- if (j > 0)
- {
- num += (_pathOriginal[j].position - _pathOriginal[j - 1].position).magnitude;
- }
- }
- int count = list.Count;
- if (extrudeDownOffset.y != 0f)
- {
- num = 0f;
- for (int k = 0; k <= 1; k++)
- {
- int num2 = 0;
- for (int l = k; l < count - 2; l += 2)
- {
- AddUnwrappedVertTop(list[l], list, uvs, num, 0f);
- AddUnwrappedVertTop(list[l] + extrudeDownOffset, list, uvs, num, 0f - extrudeDownOffset.magnitude);
- num += (_pathOriginal[num2 + 1].position - _pathOriginal[num2].position).magnitude;
- num2++;
- AddUnwrappedVertTop(list[l + 2], list, uvs, num, 0f);
- AddUnwrappedVertTop(list[l + 2] + extrudeDownOffset, list, uvs, num, 0f - extrudeDownOffset.magnitude);
- }
- }
- }
- Vector3[] normals = new Vector3[list.Count];
- for (int m = 0; m < _pathOriginal.Count - 1; m++)
- {
- if (_pathOriginal.Count <= 1)
- {
- break;
- }
- int num3 = m * 2;
- ConnectTriangle(num3 + 2, num3 + 1, num3, list2, normals, list, topNormalsAlwaysFaceDirectlyUp, vertical);
- ConnectTriangle(num3 + 1, num3 + 2, num3 + 3, list2, normals, list, topNormalsAlwaysFaceDirectlyUp, vertical);
- }
- if (extrudeDownOffset.y != 0f)
- {
- int num4 = count;
- for (int n = 0; n < count - 2; n += 2)
- {
- ConnectTriangle(num4, num4 + 1, num4 + 2, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- ConnectTriangle(num4 + 3, num4 + 2, num4 + 1, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- num4 += 4;
- }
- int num5 = num4;
- for (int num6 = 1; num6 < count - 2; num6 += 2)
- {
- ConnectTriangle(num4 + 2, num4 + 1, num4, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- ConnectTriangle(num4 + 1, num4 + 2, num4 + 3, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- num4 += 4;
- }
- ConnectTriangle(num5, count + 1, count, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- ConnectTriangle(count + 1, num5, num5 + 1, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- ConnectTriangle(num5 - 2, num5 - 1, num4 - 2, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- ConnectTriangle(num4 - 1, num4 - 2, num5 - 1, list3, normals, list, _makeNormalsFaceUp: false, _showFacesFacedDownwards: true);
- }
- mesh.subMeshCount = ((extrudeDownOffset.y == 0f) ? 1 : 2);
- mesh.SetVertices(list);
- mesh.SetTriangles(list2, 0);
- if (extrudeDownOffset.y != 0f)
- {
- mesh.SetTriangles(list3, 1);
- }
- mesh.SetUVs(0, uvs);
- mesh.SetNormals(normals);
- mesh.RecalculateBounds();
- if ((bool)meshFilter)
- {
- meshFilter.sharedMesh = mesh;
- }
- if ((bool)meshCollider)
- {
- meshCollider.sharedMesh = mesh;
- }
- }
-
- public void ConnectTriangle(int _vertA, int _vertB, int _vertC, List<int> _tris, Vector3[] _normals, List<Vector3> _verts, bool _makeNormalsFaceUp, bool _showFacesFacedDownwards)
- {
- if (flipNormals)
- {
- int num = _vertA;
- _vertA = _vertC;
- _vertC = num;
- }
- Vector3 normalized = Vector3.Cross(_verts[_vertA] - _verts[_vertB], _verts[_vertC] - _verts[_vertB]).normalized;
- if (normalized.y > 0f || _showFacesFacedDownwards)
- {
- _tris.Add(_vertC);
- _tris.Add(_vertB);
- _tris.Add(_vertA);
- if (_makeNormalsFaceUp)
- {
- _normals[_vertC] = Vector3.up;
- _normals[_vertB] = Vector3.up;
- _normals[_vertA] = Vector3.up;
- }
- else
- {
- _normals[_vertC] = normalized;
- _normals[_vertB] = normalized;
- _normals[_vertA] = normalized;
- }
- }
- }
-
- public void AddUnwrappedVertTop(Vector3 _pos, List<Vector3> _verts, List<Vector2> _uvs, float _distanceTraveled, float _width)
- {
- _verts.Add(_pos);
- if (uvUnwrapMode == UnwrapMode.XZWorldSpace)
- {
- _pos = base.transform.localToWorldMatrix.MultiplyPoint(_pos);
- _uvs.Add(new Vector2(_pos.x * uvScale, _pos.z * uvScale));
- }
- else if (uvUnwrapMode == UnwrapMode.River)
- {
- _uvs.Add(new Vector2(_distanceTraveled * uvScale, _width * uvScale));
- }
- }
-
- public void InterpolateModifyer(List<PathPoint> _pathIn, List<PathPoint> _pathOut, int _subdivisions)
- {
- for (int i = 0; i < _pathIn.Count - 1; i++)
- {
- for (int j = 0; j < _subdivisions; j++)
- {
- float num = (float)j / (float)_subdivisions;
- float magnitude = (_pathIn[i + 1].position - _pathIn[i].position).magnitude;
- Vector3 forwards = GetForwards(i, _pathIn);
- Vector3 forwards2 = GetForwards(i + 1, _pathIn);
- Vector3 a = _pathIn[i].position + num * forwards * magnitude;
- Vector3 b = _pathIn[i + 1].position - (1f - num) * forwards2 * magnitude;
- Vector3 position = Vector3.Lerp(a, b, Mathf.SmoothStep(0f, 1f, num));
- float width = Mathf.SmoothStep(_pathIn[i].width, _pathIn[i + 1].width, num);
- PathPoint item = new PathPoint(position, width);
- _pathOut.Add(item);
- }
- }
- _pathOut.Add(_pathIn[_pathIn.Count - 1]);
- }
-
- public void ResampleModifyer(ref List<PathPoint> _pathOriginal, float _maxDistance, float _stepSize = 0.1f)
- {
- if (_pathOriginal.Count < 2)
- {
- return;
- }
- List<PathPoint> list = new List<PathPoint>();
- list.Add(_pathOriginal[0]);
- float num = 0f;
- for (int i = 0; i < _pathOriginal.Count - 1; i++)
- {
- int num2 = (int)Mathf.Ceil((_pathOriginal[i].position - _pathOriginal[i + 1].position).magnitude / _stepSize);
- for (int j = 0; j < num2; j++)
- {
- num += _stepSize;
- if (num >= _maxDistance)
- {
- float t = (float)j / (float)num2;
- Vector3 position = Vector3.Lerp(_pathOriginal[i].position, _pathOriginal[i + 1].position, t);
- float width = Mathf.Lerp(_pathOriginal[i].width, _pathOriginal[i + 1].width, t);
- num = 0f;
- list.Add(new PathPoint(position, width));
- }
- }
- }
- list.Add(_pathOriginal[_pathOriginal.Count - 1]);
- _pathOriginal = list;
- }
-
- public void WhobbleModifyer(List<PathPoint> _path, float _widthAmount, float _posAmount)
- {
- UnityEngine.Random.InitState(_path.Count * 7);
- for (int i = 0; i < _path.Count; i++)
- {
- _path[i].position += new Vector3(UnityEngine.Random.value - 0.5f, 0f, UnityEngine.Random.value - 0.5f) * _posAmount;
- _path[i].width *= 1f + (UnityEngine.Random.value - 0.5f) * _widthAmount;
- }
- }
-
- public void AddRoundedEndsModifyer(List<PathPoint> _pathModify, int _interpolations)
- {
- Vector3 position = _pathModify[0].position;
- Vector3 vector = -GetForwards(0, _pathModify);
- float width = _pathModify[0].width;
- Vector3 position2 = _pathModify[_pathModify.Count - 1].position;
- Vector3 forwards = GetForwards(_pathModify.Count - 1, _pathModify);
- float width2 = _pathModify[_pathModify.Count - 1].width;
- for (int i = 1; i < _interpolations; i++)
- {
- float f = (float)i / (float)_interpolations;
- f = Mathf.Pow(f, 0.5f);
- float width3 = width * (1f - Mathf.Pow(f, 3f));
- float num = width * f;
- _pathModify.Insert(0, new PathPoint(position + num * vector, width3));
- }
- for (int j = 1; j < _interpolations; j++)
- {
- float f2 = (float)j / (float)_interpolations;
- f2 = Mathf.Pow(f2, 0.5f);
- float width4 = width2 * (1f - Mathf.Pow(f2, 3f));
- float num2 = width2 * f2;
- _pathModify.Add(new PathPoint(position2 + num2 * forwards, width4));
- }
- }
-
- private Vector3 GetForwards(int i, List<PathPoint> path, bool _xzPlaneOnly = true)
- {
- Vector3 result = ((i == 0) ? (path[i + 1].position - path[i].position).normalized : ((i != path.Count - 1) ? (path[i + 1].position - path[i - 1].position).normalized : (path[i].position - path[i - 1].position).normalized));
- if (_xzPlaneOnly)
- {
- result = new Vector3(result.x, 0f, result.z).normalized;
- }
- return result;
- }
-
- public void Nullify()
- {
- List<Vector3> list = new List<Vector3>();
- for (int i = 0; i < base.transform.childCount; i++)
- {
- Transform child = base.transform.GetChild(i);
- list.Add(child.transform.position);
- }
- base.transform.position = Vector3.zero;
- for (int j = 0; j < base.transform.childCount; j++)
- {
- base.transform.GetChild(j).transform.position = list[j];
- }
- }
-}
diff --git a/GameCode/PathfindMovement.cs b/GameCode/PathfindMovement.cs
deleted file mode 100644
index 4a20af2..0000000
--- a/GameCode/PathfindMovement.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Pathfinding.RVO;
-using UnityEngine;
-
-public abstract class PathfindMovement : MonoBehaviour
-{
- public virtual bool IsSlowed => false;
-
- public virtual RVOController RVO => null;
-
- public abstract void ClearCurrentPath();
-
- public abstract void Slow(float _duration);
-
- public abstract void GetAgroFromObject(TaggedObject _agroTarget);
-}
diff --git a/GameCode/PathfindMovementEnemy.cs b/GameCode/PathfindMovementEnemy.cs
deleted file mode 100644
index b80b53d..0000000
--- a/GameCode/PathfindMovementEnemy.cs
+++ /dev/null
@@ -1,283 +0,0 @@
-using System.Collections.Generic;
-using Pathfinding;
-using Pathfinding.RVO;
-using UnityEngine;
-
-[RequireComponent(typeof(Seeker))]
-public class PathfindMovementEnemy : PathfindMovement, DayNightCycle.IDaytimeSensitive
-{
- public List<TargetPriority> targetPriorities = new List<TargetPriority>();
-
- public float keepDistanceOf = 2f;
-
- public float maximumDistanceFromHome = 100000f;
-
- public float movementSpeed = 2f;
-
- public float recalculatePathInterval = 1f;
-
- public string backupMovementGraph = "";
-
- public float agroTimeWhenAttackedByPlayer = 5f;
-
- private TaggedObject agroPlayerTarget;
-
- private float remainingPlayerAgroTime;
-
- private Seeker seeker;
-
- private RVOController rvo;
-
- private Vector3 seekToTargetPosSnappedtoNavmesh = Vector3.zero;
-
- private Vector3 seekToTargetPos = Vector3.zero;
-
- private TaggedObject seekToTaggedObj;
-
- private List<Vector3> path = new List<Vector3>();
-
- private int nextPathPointIndex;
-
- private float recalculatePathCooldown;
-
- private Vector3 homePosition;
-
- private bool currentlyWalkingHome = true;
-
- private TargetPriority targetPrio;
-
- private bool currentlyChasingPlayer;
-
- private NNConstraint nearestConstraint = new NNConstraint();
-
- private Vector3 nextPathPoint;
-
- private Vector3 homeOffset = Vector3.zero;
-
- private GraphMask graphMaskOriginal;
-
- private GraphMask graphMaskBackup;
-
- private float slowedFor;
-
- private float speedWhenSlowed = 0.33f;
-
- private Vector3 storeRequestedTargetPos;
-
- public override RVOController RVO => rvo;
-
- public Vector3 HomePosition => homePosition;
-
- public Vector3 NextPathPoint => nextPathPoint;
-
- public override bool IsSlowed => slowedFor > 0f;
-
- public override void GetAgroFromObject(TaggedObject _agroTarget)
- {
- if ((bool)_agroTarget && _agroTarget.Tags.Contains(TagManager.ETag.Player))
- {
- agroPlayerTarget = _agroTarget;
- remainingPlayerAgroTime = agroTimeWhenAttackedByPlayer;
- if (!currentlyChasingPlayer && agroTimeWhenAttackedByPlayer > 0f)
- {
- OriginalPathRequest();
- }
- }
- }
-
- public void OnDusk()
- {
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- private void Start()
- {
- seeker = GetComponent<Seeker>();
- rvo = GetComponent<RVOController>();
- recalculatePathCooldown = recalculatePathInterval * Random.value;
- homePosition = base.transform.position;
- nearestConstraint.graphMask = seeker.graphMask;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- homeOffset = new Vector3(Random.value - 0.5f, 0f, Random.value - 0.5f);
- foreach (TargetPriority targetPriority in targetPriorities)
- {
- targetPriority.mayNotHaveTags.Add(TagManager.ETag.AUTO_Commanded);
- }
- if (PerkManager.instance.IceMagicActive)
- {
- speedWhenSlowed *= PerkManager.instance.iceMagic_AdditionalsSlowMutli;
- }
- graphMaskOriginal = seeker.graphMask;
- graphMaskBackup = GraphMask.FromGraphName(backupMovementGraph);
- if (GetComponent<TaggedObject>().Tags.Contains(TagManager.ETag.MeeleFighter) && Random.value < 0.5f)
- {
- graphMaskOriginal = graphMaskBackup;
- }
- }
-
- private void OriginalPathRequest()
- {
- seekToTargetPos = FindMoveToTarget();
- seekToTargetPosSnappedtoNavmesh = AstarPath.active.GetNearest(seekToTargetPos, nearestConstraint).position;
- storeRequestedTargetPos = seekToTargetPosSnappedtoNavmesh;
- seeker.StartPath(base.transform.position, seekToTargetPosSnappedtoNavmesh, OriginalOnPathComplete, graphMaskOriginal);
- }
-
- private void OriginalOnPathComplete(Path _p)
- {
- if (backupMovementGraph != "")
- {
- if (_p.error)
- {
- BackupPathRequest();
- return;
- }
- if ((storeRequestedTargetPos - _p.vectorPath[_p.vectorPath.Count - 1]).magnitude > 0.1f)
- {
- BackupPathRequest();
- return;
- }
- }
- else if (_p.error)
- {
- return;
- }
- path = _p.vectorPath;
- nextPathPointIndex = 0;
- }
-
- private void BackupPathRequest()
- {
- seekToTargetPos = FindMoveToTarget();
- seekToTargetPosSnappedtoNavmesh = AstarPath.active.GetNearest(seekToTargetPos, nearestConstraint).position;
- storeRequestedTargetPos = seekToTargetPosSnappedtoNavmesh;
- seeker.StartPath(base.transform.position, seekToTargetPosSnappedtoNavmesh, BackupOnPathComplete, graphMaskBackup);
- }
-
- private void BackupOnPathComplete(Path _p)
- {
- if (!_p.error)
- {
- path = _p.vectorPath;
- nextPathPointIndex = 0;
- }
- }
-
- private Vector3 FindMoveToTarget()
- {
- currentlyWalkingHome = false;
- currentlyChasingPlayer = false;
- if (remainingPlayerAgroTime > 0f && agroPlayerTarget != null && !agroPlayerTarget.Hp.KnockedOut)
- {
- seekToTaggedObj = agroPlayerTarget;
- currentlyChasingPlayer = true;
- return seekToTaggedObj.transform.position;
- }
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- targetPrio = targetPriorities[i];
- seekToTaggedObj = targetPrio.FindTaggedObjectCloseToHome(base.transform.position, homePosition, maximumDistanceFromHome, out var _outPosition);
- if (!(seekToTaggedObj == null))
- {
- if (seekToTaggedObj.Tags.Contains(TagManager.ETag.Player))
- {
- currentlyChasingPlayer = true;
- }
- return _outPosition;
- }
- }
- seekToTaggedObj = null;
- targetPrio = null;
- currentlyWalkingHome = true;
- return homePosition + homeOffset;
- }
-
- private void Update()
- {
- if (remainingPlayerAgroTime > 0f)
- {
- remainingPlayerAgroTime -= Time.deltaTime;
- }
- recalculatePathCooldown -= Time.deltaTime;
- if (recalculatePathCooldown <= 0f)
- {
- recalculatePathCooldown = recalculatePathInterval;
- OriginalPathRequest();
- }
- if (currentlyChasingPlayer)
- {
- seekToTargetPosSnappedtoNavmesh = seekToTaggedObj.transform.position;
- if (path.Count > 0)
- {
- path[path.Count - 1] = seekToTargetPosSnappedtoNavmesh;
- }
- seekToTargetPos = seekToTargetPosSnappedtoNavmesh;
- }
- FollowPathUpdate();
- }
-
- public override void Slow(float _duration)
- {
- slowedFor = Mathf.Max(_duration, slowedFor);
- }
-
- private void FollowPathUpdate()
- {
- if (path.Count <= nextPathPointIndex)
- {
- if (!currentlyChasingPlayer || path.Count <= 0)
- {
- return;
- }
- nextPathPointIndex = path.Count - 1;
- }
- nextPathPoint = path[nextPathPointIndex];
- Vector3 vector;
- if ((base.transform.position - seekToTargetPos).magnitude < keepDistanceOf && !currentlyWalkingHome)
- {
- vector = Vector3.zero;
- nextPathPoint = base.transform.position;
- }
- else
- {
- vector = nextPathPoint - base.transform.position;
- if (vector.magnitude <= 1f)
- {
- nextPathPointIndex++;
- nextPathPointIndex = Mathf.Clamp(nextPathPointIndex, 0, path.Count - 1);
- nextPathPoint = path[nextPathPointIndex];
- vector = nextPathPoint - base.transform.position;
- }
- }
- rvo.priority = vector.magnitude;
- if (slowedFor > 0f)
- {
- rvo.SetTarget(nextPathPoint, vector.magnitude * 3f, movementSpeed * speedWhenSlowed);
- slowedFor -= Time.deltaTime;
- }
- else
- {
- rvo.SetTarget(nextPathPoint, vector.magnitude * 3f, movementSpeed);
- }
- Vector3 position = base.transform.position + rvo.CalculateMovementDelta(Time.deltaTime);
- Vector3 position2 = AstarPath.active.GetNearest(position, nearestConstraint).position;
- base.transform.position = position2;
- }
-
- public void SnapToNavmesh()
- {
- base.transform.position = AstarPath.active.GetNearest(base.transform.position, nearestConstraint).position;
- }
-
- public override void ClearCurrentPath()
- {
- path.Clear();
- }
-}
diff --git a/GameCode/PathfindMovementPlayerunit.cs b/GameCode/PathfindMovementPlayerunit.cs
deleted file mode 100644
index 490eb63..0000000
--- a/GameCode/PathfindMovementPlayerunit.cs
+++ /dev/null
@@ -1,326 +0,0 @@
-using System.Collections.Generic;
-using Pathfinding;
-using Pathfinding.RVO;
-using UnityEngine;
-
-[RequireComponent(typeof(Seeker))]
-public class PathfindMovementPlayerunit : PathfindMovement, DayNightCycle.IDaytimeSensitive
-{
- public List<TargetPriority> targetPriorities = new List<TargetPriority>();
-
- public float keepDistanceOf = 2f;
-
- public float maximumDistanceFromHome = 100000f;
-
- public float movementSpeed = 2f;
-
- public float recalculatePathInterval = 1f;
-
- public string backupMovementGraph = "";
-
- public float agroTimeWhenAttackedByPlayer = 5f;
-
- public float speedBoostDuringDaytime = 1.5f;
-
- private TaggedObject agroPlayerTarget;
-
- private Seeker seeker;
-
- private RVOController rvo;
-
- private Vector3 seekToTargetPosSnappedtoNavmesh = Vector3.zero;
-
- private Vector3 seekToTargetPos = Vector3.zero;
-
- private TaggedObject seekToTaggedObj;
-
- private List<Vector3> path = new List<Vector3>();
-
- private int nextPathPointIndex;
-
- private float recalculatePathCooldown;
-
- private Vector3 homePosition;
-
- private Vector3 homePositionOriginal;
-
- private bool currentlyWalkingHome = true;
-
- private TargetPriority targetPrio;
-
- private NNConstraint nearestConstraint = new NNConstraint();
-
- private GraphMask graphMaskOriginal;
-
- private Vector3 nextPathPoint;
-
- private SettingsManager settingsManager;
-
- private bool followingPlayer;
-
- [SerializeField]
- private GameObject holdPositionMarker;
-
- private Transform holdPositionMarkerTransform;
-
- private float slowedFor;
-
- private bool day = true;
-
- private bool holdPosition;
-
- private Vector3 storeRequestedTargetPos;
-
- public override RVOController RVO => rvo;
-
- public Vector3 HopePositionOriginal => homePositionOriginal;
-
- public Vector3 HomePosition
- {
- get
- {
- return homePosition;
- }
- set
- {
- homePosition = value;
- }
- }
-
- public Vector3 NextPathPoint => nextPathPoint;
-
- public override bool IsSlowed => slowedFor > 0f;
-
- public bool HoldPosition
- {
- get
- {
- return holdPosition;
- }
- set
- {
- holdPosition = value;
- holdPositionMarker.SetActive(value);
- if ((bool)holdPositionMarkerTransform)
- {
- holdPositionMarkerTransform.position = homePosition + 0.05f * Vector3.up;
- }
- }
- }
-
- public void FollowPlayer(bool _follow)
- {
- followingPlayer = _follow;
- HoldPosition = false;
- }
-
- public override void GetAgroFromObject(TaggedObject _agroTarget)
- {
- }
-
- private void OnDisable()
- {
- if ((bool)holdPositionMarker)
- {
- holdPositionMarker.SetActive(value: false);
- }
- }
-
- private void OnEnable()
- {
- HoldPosition = HoldPosition;
- }
-
- public void OnDusk()
- {
- day = false;
- }
-
- public void OnDawn_AfterSunrise()
- {
- day = true;
- }
-
- public void OnDawn_BeforeSunrise()
- {
- if (settingsManager.ResetUnitFormationEveryMorning)
- {
- homePosition = homePositionOriginal;
- HoldPosition = false;
- }
- }
-
- private void Start()
- {
- settingsManager = SettingsManager.Instance;
- holdPositionMarkerTransform = holdPositionMarker.transform;
- holdPositionMarkerTransform.SetParent(null);
- HoldPosition = false;
- seeker = GetComponent<Seeker>();
- rvo = GetComponent<RVOController>();
- recalculatePathCooldown = recalculatePathInterval * Random.value;
- homePosition = base.transform.position;
- homePositionOriginal = base.transform.position;
- nearestConstraint.graphMask = seeker.graphMask;
- graphMaskOriginal = seeker.graphMask;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- private void OriginalPathRequest()
- {
- seekToTargetPos = FindMoveToTarget();
- seekToTargetPosSnappedtoNavmesh = AstarPath.active.GetNearest(seekToTargetPos, nearestConstraint).position;
- storeRequestedTargetPos = seekToTargetPosSnappedtoNavmesh;
- seeker.StartPath(base.transform.position, seekToTargetPosSnappedtoNavmesh, OriginalOnPathComplete, graphMaskOriginal);
- }
-
- private void OriginalOnPathComplete(Path _p)
- {
- if (backupMovementGraph != "")
- {
- if (_p.error)
- {
- BackupPathRequest();
- return;
- }
- if ((storeRequestedTargetPos - _p.vectorPath[_p.vectorPath.Count - 1]).magnitude > 0.1f)
- {
- BackupPathRequest();
- return;
- }
- }
- else if (_p.error)
- {
- return;
- }
- path = _p.vectorPath;
- nextPathPointIndex = 0;
- }
-
- private void BackupPathRequest()
- {
- seekToTargetPos = FindMoveToTarget();
- seekToTargetPosSnappedtoNavmesh = AstarPath.active.GetNearest(seekToTargetPos, nearestConstraint).position;
- storeRequestedTargetPos = seekToTargetPosSnappedtoNavmesh;
- seeker.StartPath(base.transform.position, seekToTargetPosSnappedtoNavmesh, BackupOnPathComplete, GraphMask.FromGraphName(backupMovementGraph));
- }
-
- private void BackupOnPathComplete(Path _p)
- {
- if (!_p.error)
- {
- path = _p.vectorPath;
- nextPathPointIndex = 0;
- }
- }
-
- private Vector3 FindMoveToTarget()
- {
- if (followingPlayer)
- {
- seekToTaggedObj = null;
- targetPrio = null;
- currentlyWalkingHome = true;
- return homePosition;
- }
- if (holdPosition)
- {
- seekToTaggedObj = null;
- targetPrio = null;
- currentlyWalkingHome = true;
- return homePosition;
- }
- currentlyWalkingHome = false;
- for (int i = 0; i < targetPriorities.Count; i++)
- {
- targetPrio = targetPriorities[i];
- seekToTaggedObj = targetPrio.FindTaggedObjectCloseToHome(base.transform.position, homePosition, maximumDistanceFromHome, out var _outPosition);
- if (!(seekToTaggedObj == null))
- {
- return _outPosition;
- }
- }
- seekToTaggedObj = null;
- targetPrio = null;
- currentlyWalkingHome = true;
- return homePosition;
- }
-
- private void Update()
- {
- recalculatePathCooldown -= Time.deltaTime;
- if (recalculatePathCooldown <= 0f)
- {
- recalculatePathCooldown = recalculatePathInterval;
- OriginalPathRequest();
- }
- if (followingPlayer)
- {
- if (path.Count > 0)
- {
- path[path.Count - 1] = homePosition;
- }
- seekToTargetPos = homePosition;
- }
- FollowPathUpdate();
- }
-
- public override void Slow(float _duration)
- {
- slowedFor = Mathf.Max(_duration, slowedFor);
- }
-
- private void FollowPathUpdate()
- {
- if (path.Count <= nextPathPointIndex)
- {
- if (!followingPlayer || path.Count <= 0)
- {
- return;
- }
- nextPathPointIndex = path.Count - 1;
- }
- nextPathPoint = path[nextPathPointIndex];
- Vector3 vector;
- if ((base.transform.position - seekToTargetPos).magnitude < keepDistanceOf && !currentlyWalkingHome)
- {
- vector = Vector3.zero;
- nextPathPoint = base.transform.position;
- }
- else
- {
- vector = nextPathPoint - base.transform.position;
- if (vector.magnitude <= 1f)
- {
- nextPathPointIndex++;
- nextPathPointIndex = Mathf.Clamp(nextPathPointIndex, 0, path.Count - 1);
- nextPathPoint = path[nextPathPointIndex];
- vector = nextPathPoint - base.transform.position;
- }
- }
- rvo.priority = vector.magnitude;
- float num = (day ? (movementSpeed * speedBoostDuringDaytime) : movementSpeed);
- if (slowedFor > 0f)
- {
- rvo.SetTarget(nextPathPoint, vector.magnitude * 3f, num * 0.33f);
- slowedFor -= Time.deltaTime;
- }
- else
- {
- rvo.SetTarget(nextPathPoint, vector.magnitude * 3f, num);
- }
- Vector3 position = base.transform.position + rvo.CalculateMovementDelta(Time.deltaTime);
- Vector3 position2 = AstarPath.active.GetNearest(position, nearestConstraint).position;
- base.transform.position = position2;
- }
-
- public void SnapToNavmesh()
- {
- base.transform.position = AstarPath.active.GetNearest(base.transform.position, nearestConstraint).position;
- }
-
- public override void ClearCurrentPath()
- {
- path.Clear();
- }
-}
diff --git a/GameCode/PauseUILoadoutHelper.cs b/GameCode/PauseUILoadoutHelper.cs
deleted file mode 100644
index c51180c..0000000
--- a/GameCode/PauseUILoadoutHelper.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class PauseUILoadoutHelper : MonoBehaviour
-{
- public ThronefallUIElement topmostButton;
-
- public ThronefallUIElement botmostButton;
-
- public GridLayoutGroup loadoutGroup;
-
- public TFUIEquippable equippableButtonPrefab;
-
- private List<TFUIEquippable> grid = new List<TFUIEquippable>();
-
- private const int maxRows = 4;
-
- public void Refresh()
- {
- if (SceneTransitionManager.instance.CurrentSceneState != SceneTransitionManager.SceneState.InGame)
- {
- return;
- }
- grid.Clear();
- foreach (Transform item in loadoutGroup.transform)
- {
- Object.Destroy(item.gameObject);
- }
- List<Equippable> list = new List<Equippable>();
- List<Equippable> list2 = new List<Equippable>();
- List<Equippable> list3 = new List<Equippable>();
- foreach (Equippable item2 in PerkManager.instance.CurrentlyEquipped)
- {
- if (item2 is EquippableWeapon)
- {
- list.Add(item2);
- }
- else if (item2 is EquippablePerk)
- {
- list2.Add(item2);
- }
- else if (item2 is EquippableMutation)
- {
- list3.Add(item2);
- }
- }
- foreach (Equippable item3 in list)
- {
- AddTFUIEquippable(loadoutGroup, item3);
- }
- foreach (Equippable item4 in list2)
- {
- AddTFUIEquippable(loadoutGroup, item4);
- }
- foreach (Equippable item5 in list3)
- {
- AddTFUIEquippable(loadoutGroup, item5);
- }
- AssignNavigationTargets();
- }
-
- private void AddTFUIEquippable(GridLayoutGroup parent, Equippable e)
- {
- TFUIEquippable component = Object.Instantiate(equippableButtonPrefab, parent.transform).GetComponent<TFUIEquippable>();
- component.SetDataSimple(e);
- grid.Add(component);
- }
-
- private void AssignNavigationTargets()
- {
- int num = grid.Count / 4;
- int num2 = grid.Count % 4;
- if (num2 > 0)
- {
- num++;
- }
- else
- {
- num2 = 4;
- }
- int num3 = 0;
- int num4 = 0;
- for (int i = 0; i < grid.Count; i++)
- {
- ThronefallUIElement thronefallUIElement = grid[i];
- if (num3 == 0)
- {
- thronefallUIElement.topNav = botmostButton;
- }
- else
- {
- thronefallUIElement.topNav = grid[i - 1];
- }
- if (num3 == 3 || (num == 1 && i == grid.Count - 1))
- {
- thronefallUIElement.botNav = topmostButton;
- }
- else if (num > 1 && i == grid.Count - 1)
- {
- thronefallUIElement.botNav = grid[4 * num4 - 1];
- }
- else
- {
- thronefallUIElement.botNav = grid[i + 1];
- }
- if (num > 1)
- {
- if (num4 == 0)
- {
- if (num3 <= num2 - 1)
- {
- thronefallUIElement.leftNav = grid[grid.Count - (num2 - num3)];
- }
- else if (i + 4 <= grid.Count - 1)
- {
- thronefallUIElement.leftNav = grid[i + 4];
- }
- }
- else
- {
- thronefallUIElement.leftNav = grid[i - 4];
- }
- if (num4 == num - 1)
- {
- thronefallUIElement.rightNav = grid[i - 4 * (num - 1)];
- }
- else
- {
- int num5 = i + 4;
- if (num5 <= grid.Count - 1)
- {
- thronefallUIElement.rightNav = grid[num5];
- }
- else
- {
- thronefallUIElement.rightNav = grid[i - 4 * num4];
- }
- }
- }
- num3++;
- if (num3 > 3)
- {
- num3 = 0;
- num4++;
- }
- }
- if (grid.Count > 0)
- {
- botmostButton.botNav = grid[0];
- if (num2 != 4 && num > 1)
- {
- topmostButton.topNav = grid[4 * (num - 1) - 1];
- }
- else
- {
- topmostButton.topNav = grid[grid.Count - 1];
- }
- }
- }
-}
diff --git a/GameCode/PerkCooldownModifyer.cs b/GameCode/PerkCooldownModifyer.cs
deleted file mode 100644
index e5b14f0..0000000
--- a/GameCode/PerkCooldownModifyer.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using UnityEngine;
-
-public class PerkCooldownModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public float hpCooldownMultiplyer;
-
- public AutoAttack autoAttack;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- autoAttack.cooldownDuration *= hpCooldownMultiplyer;
- autoAttack.recheckTargetInterval *= hpCooldownMultiplyer;
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkCostModifyer.cs b/GameCode/PerkCostModifyer.cs
deleted file mode 100644
index d4e2d62..0000000
--- a/GameCode/PerkCostModifyer.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using UnityEngine;
-
-public class PerkCostModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public int[] upgradeCostChange;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- BuildSlot component = GetComponent<BuildSlot>();
- for (int i = 0; i < component.Upgrades.Count; i++)
- {
- component.Upgrades[i].cost += upgradeCostChange[i];
- }
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkDamageModifyerPlayerunitAuto.cs b/GameCode/PerkDamageModifyerPlayerunitAuto.cs
deleted file mode 100644
index fe8a9de..0000000
--- a/GameCode/PerkDamageModifyerPlayerunitAuto.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class PerkDamageModifyerPlayerunitAuto : MonoBehaviour
-{
- private void Start()
- {
- PerkManager instance = PerkManager.instance;
- if (instance.WarriorModeActive)
- {
- AutoAttack[] componentsInChildren = GetComponentsInChildren<AutoAttack>(includeInactive: true);
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].DamageMultiplyer *= instance.warriorModeAllyDmgMulti;
- }
- }
- if (instance.CommanderModeActive)
- {
- AutoAttack[] componentsInChildren = GetComponentsInChildren<AutoAttack>(includeInactive: true);
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].DamageMultiplyer *= instance.commanderModeAllyDmgMulti;
- }
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkDestroyGameObjectModifyer.cs b/GameCode/PerkDestroyGameObjectModifyer.cs
deleted file mode 100644
index db48c28..0000000
--- a/GameCode/PerkDestroyGameObjectModifyer.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using UnityEngine;
-
-public class PerkDestroyGameObjectModifyer : MonoBehaviour
-{
- [SerializeField]
- private Equippable perk;
-
- [SerializeField]
- private bool destroyIfPerkIsEquipped;
-
- [SerializeField]
- private bool destroyIfPerkIsNotEquipped;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(perk))
- {
- if (destroyIfPerkIsEquipped)
- {
- Object.Destroy(base.gameObject);
- }
- }
- else if (destroyIfPerkIsNotEquipped)
- {
- Object.Destroy(base.gameObject);
- }
- }
-}
diff --git a/GameCode/PerkHpModifyer.cs b/GameCode/PerkHpModifyer.cs
deleted file mode 100644
index 3c7186c..0000000
--- a/GameCode/PerkHpModifyer.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using UnityEngine;
-
-public class PerkHpModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public float hpMultiplyer;
-
- public Hp hp;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- BuildSlot componentInParent = GetComponentInParent<BuildSlot>();
- if ((bool)componentInParent)
- {
- foreach (BuildSlot.Upgrade upgrade in componentInParent.Upgrades)
- {
- foreach (BuildSlot.UpgradeBranch upgradeBranch in upgrade.upgradeBranches)
- {
- upgradeBranch.hpChange = Mathf.RoundToInt((float)upgradeBranch.hpChange * hpMultiplyer);
- }
- }
- }
- hp.maxHp *= hpMultiplyer;
- hp.Heal(float.MaxValue);
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkIncomeModifyer.cs b/GameCode/PerkIncomeModifyer.cs
deleted file mode 100644
index 14de63d..0000000
--- a/GameCode/PerkIncomeModifyer.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-
-public class PerkIncomeModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public int[] upgradeIncomeChange;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- BuildSlot component = GetComponent<BuildSlot>();
- for (int i = 0; i < component.Upgrades.Count; i++)
- {
- foreach (BuildSlot.UpgradeBranch upgradeBranch in component.Upgrades[i].upgradeBranches)
- {
- upgradeBranch.goldIncomeChange += upgradeIncomeChange[i];
- }
- }
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkIndestructible.cs b/GameCode/PerkIndestructible.cs
deleted file mode 100644
index d03713e..0000000
--- a/GameCode/PerkIndestructible.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-
-public class PerkIndestructible : MonoBehaviour
-{
- [SerializeField]
- private Equippable indestructiblePerk;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(indestructiblePerk))
- {
- TaggedObject componentInChildren = GetComponentInChildren<TaggedObject>();
- if ((bool)componentInChildren)
- {
- componentInChildren.RemoveTag(TagManager.ETag.PlayerOwned);
- }
- }
- Object.Destroy(this);
- }
-
- private void Update()
- {
- }
-}
diff --git a/GameCode/PerkManager.cs b/GameCode/PerkManager.cs
deleted file mode 100644
index 540b858..0000000
--- a/GameCode/PerkManager.cs
+++ /dev/null
@@ -1,193 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PerkManager : MonoBehaviour
-{
- public const int MaxLevel = 1000000;
-
- public static PerkManager instance;
-
- [Header("Equippables: ")]
- [SerializeField]
- private List<Equippable> currentlyEquipped;
-
- [SerializeField]
- private List<Equippable> unlockedEquippables;
-
- [Header("Leveling system: ")]
- public int xp;
-
- public int level = 1;
-
- [SerializeField]
- private List<MetaLevel> metaLevels;
-
- public float heavyArmor_HpMultiplyer;
-
- public float heavyArmor_SpeedMultiplyer;
-
- public float godsLotion_RegenRateMultiplyer;
-
- public float godsLotion_RegenDelayMultiplyer;
-
- public float racingHorse_SpeedMultiplyer;
-
- public float gladiatorSchool_TrainingSpeedMultiplyer;
-
- public float elliteWarriors_TrainingSpeedMultiplyer;
-
- public float tauntTheTiger_damageMultiplyer;
-
- public Equippable tigerGodPerk;
-
- public float tauntTheTurtle_hpMultiplyer;
-
- public Equippable turtleGodPerk;
-
- public float tauntTheFalcon_speedMultiplyer;
-
- public float tauntTheFalcon_chasePlayerTimeMultiplyer;
-
- public Equippable falconGodPerk;
-
- public Equippable ratGodPerk;
-
- public Equippable warriorMode;
-
- public float warriorModeAllyDmgMulti = 0.5f;
-
- public float warriorModeSelfDmgMultiMax = 2f;
-
- public Equippable commanderMode;
-
- public float commanderModeAllyDmgMulti = 1.5f;
-
- public float commanderModeSelfDmgMulti = 0.5f;
-
- public Equippable glassCanon;
-
- public float glassCanon_dmgMulti = 1.5f;
-
- public Equippable healintSpirits;
-
- public float healingSpirits_healMulti = 1.5f;
-
- public Equippable iceMagic;
-
- public float iceMagic_AdditionalsSlowMutli = 0.75f;
-
- public float iceMagic_SlowDurationMulti = 2f;
-
- public Equippable rangedResistence;
-
- public float rangedResistence_AmountMulti = 1.3f;
-
- public Equippable meleeResistence;
-
- public float meleeResistence_AmountMulti = 1.3f;
-
- public float powerTower_attackSpeedBonus = 2f;
-
- public Equippable treasureHunter;
-
- public int treasureHunterGoldAmount = 40;
-
- public Equippable cheeseGod;
-
- public Equippable godOfDeath;
-
- public float godOfDeath_playerRespawnMultiplyer = 2f;
-
- public Equippable destructionGod;
-
- public List<Equippable> UnlockedEquippables => unlockedEquippables;
-
- public List<Equippable> CurrentlyEquipped => currentlyEquipped;
-
- public List<MetaLevel> MetaLevels => metaLevels;
-
- public MetaLevel NextMetaLevel
- {
- get
- {
- if (level - 1 >= metaLevels.Count || level >= 1000000)
- {
- return null;
- }
- return metaLevels[level - 1];
- }
- }
-
- public bool WarriorModeActive => IsEquipped(warriorMode);
-
- public bool CommanderModeActive => IsEquipped(commanderMode);
-
- public bool GlassCanonActive => IsEquipped(glassCanon);
-
- public bool HealingSpiritsActive => IsEquipped(healintSpirits);
-
- public bool IceMagicActive => IsEquipped(iceMagic);
-
- public bool RangedResistenceActive => IsEquipped(rangedResistence);
-
- public bool MeleeResistenceActive => IsEquipped(meleeResistence);
-
- public bool TreasureHunterActive => IsEquipped(treasureHunter);
-
- public bool CheeseGodActive => IsEquipped(cheeseGod);
-
- public bool GodOfDeathActive => IsEquipped(godOfDeath);
-
- public bool DestructionGodActive => IsEquipped(destructionGod);
-
- private void Awake()
- {
- if ((bool)instance)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.transform.root.gameObject);
- }
-
- public static bool IsEquipped(Equippable _perk)
- {
- if (!instance)
- {
- return false;
- }
- return instance.currentlyEquipped.Contains(_perk);
- }
-
- public static void SetEquipped(Equippable _perk, bool _equipped)
- {
- if (!instance)
- {
- return;
- }
- if (_equipped)
- {
- if (!instance.currentlyEquipped.Contains(_perk))
- {
- instance.currentlyEquipped.Add(_perk);
- }
- }
- else if (instance.currentlyEquipped.Contains(_perk))
- {
- instance.currentlyEquipped.Remove(_perk);
- }
- }
-
- public void CallAfterLoadToUnlockPerksAndStuff()
- {
- level = Mathf.Min(level, 1000000);
- for (int i = 0; i < Mathf.Min(metaLevels.Count, level - 1); i++)
- {
- if (!unlockedEquippables.Contains(metaLevels[i].reward) || metaLevels[i].reward.GetType() == typeof(PerkPoint))
- {
- unlockedEquippables.Add(metaLevels[i].reward);
- }
- }
- }
-}
diff --git a/GameCode/PerkPoint.cs b/GameCode/PerkPoint.cs
deleted file mode 100644
index b339e08..0000000
--- a/GameCode/PerkPoint.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Data", menuName = "SimpleSiege/Perk Point", order = 1)]
-public class PerkPoint : Equippable
-{
-}
diff --git a/GameCode/PerkRangeModifyer.cs b/GameCode/PerkRangeModifyer.cs
deleted file mode 100644
index f515e96..0000000
--- a/GameCode/PerkRangeModifyer.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using UnityEngine;
-
-public class PerkRangeModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public float rangeMultiplyer;
-
- public AutoAttack autoAttack;
-
- public PathfindMovementPlayerunit pathfindMovement;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- foreach (TargetPriority targetPriority in autoAttack.targetPriorities)
- {
- targetPriority.range *= rangeMultiplyer;
- }
- if ((bool)pathfindMovement)
- {
- pathfindMovement.keepDistanceOf *= rangeMultiplyer;
- }
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PerkSelectionGroup.cs b/GameCode/PerkSelectionGroup.cs
deleted file mode 100644
index 06d1131..0000000
--- a/GameCode/PerkSelectionGroup.cs
+++ /dev/null
@@ -1,165 +0,0 @@
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-
-public class PerkSelectionGroup : MonoBehaviour
-{
- private enum Type
- {
- Weapons,
- Perks,
- Mutations,
- FixedLoadout
- }
-
- public GameObject perkSelectionItemPrefab;
-
- public GameObject perkLockedPrefab;
-
- [SerializeField]
- private Type type;
-
- private PerkManager perkManager;
-
- private int selectableAmount = 10000;
-
- private List<PerkSelectionItem> selectedInMyGroup = new List<PerkSelectionItem>();
-
- [SerializeField]
- private TMP_Text headerText;
-
- [SerializeField]
- private string selectNone = "No perks unlocked yet.";
-
- [SerializeField]
- private string selectOne = "Select one perk.";
-
- [SerializeField]
- private string selectMulti = "Select <n> perks.";
-
- [SerializeField]
- private bool canDeselectPerks = true;
-
- [SerializeField]
- private Color textColorNormal = Color.white;
-
- [SerializeField]
- private Color textColorWarning = Color.red;
-
- private int unlockedPerks;
-
- private void Start()
- {
- UpdateVisuals();
- }
-
- public void UpdateVisuals()
- {
- perkManager = PerkManager.instance;
- int num = 0;
- for (int num2 = base.transform.childCount - 1; num2 >= 0; num2--)
- {
- Object.Destroy(base.transform.GetChild(num2).gameObject);
- }
- unlockedPerks = 0;
- for (int i = 0; i < perkManager.UnlockedEquippables.Count; i++)
- {
- Equippable equippable = perkManager.UnlockedEquippables[i];
- if (equippable.GetType() == typeof(PerkPoint))
- {
- num++;
- }
- if ((type == Type.Weapons && equippable.GetType() == typeof(EquippableWeapon)) || (type == Type.Perks && equippable.GetType() == typeof(EquippablePerk)) || (type == Type.Mutations && equippable.GetType() == typeof(EquippableMutation)))
- {
- Object.Instantiate(perkSelectionItemPrefab, base.transform).GetComponent<PerkSelectionItem>().Initialize(equippable);
- unlockedPerks++;
- }
- }
- for (int j = 0; j < perkManager.MetaLevels.Count; j++)
- {
- Equippable reward = perkManager.MetaLevels[j].reward;
- if (((type == Type.Weapons && reward.GetType() == typeof(EquippableWeapon)) || (type == Type.Perks && reward.GetType() == typeof(EquippablePerk)) || (type == Type.Mutations && reward.GetType() == typeof(EquippableMutation))) && !perkManager.UnlockedEquippables.Contains(reward))
- {
- Object.Instantiate(perkLockedPrefab, base.transform);
- }
- }
- if (type == Type.FixedLoadout && LevelInteractor.lastActivatedLevelInteractor != null)
- {
- selectableAmount = 0;
- LevelInteractor lastActivatedLevelInteractor = LevelInteractor.lastActivatedLevelInteractor;
- for (int k = 0; k < lastActivatedLevelInteractor.fixedLoadout.Count; k++)
- {
- Equippable equippable2 = lastActivatedLevelInteractor.fixedLoadout[k];
- PerkSelectionItem component = Object.Instantiate(perkSelectionItemPrefab, base.transform).GetComponent<PerkSelectionItem>();
- component.Selected = true;
- component.Initialize(equippable2);
- selectableAmount++;
- }
- }
- if (type == Type.Weapons)
- {
- selectableAmount = 1;
- }
- if (type == Type.Perks)
- {
- selectableAmount = num;
- }
- if (type == Type.Mutations)
- {
- selectableAmount = 10000;
- }
- if (selectableAmount <= 0 || unlockedPerks <= 0)
- {
- headerText.text = selectNone;
- }
- else if (selectableAmount == 1)
- {
- headerText.text = selectOne;
- }
- else
- {
- headerText.text = selectMulti.Replace("<n>", selectableAmount.ToString());
- }
- }
-
- private void Update()
- {
- if (selectedInMyGroup.Count < Mathf.Min(unlockedPerks, selectableAmount))
- {
- headerText.color = textColorWarning;
- }
- else
- {
- headerText.color = textColorNormal;
- }
- }
-
- public void SelectPerk(PerkSelectionItem _selectedPerk)
- {
- if (!canDeselectPerks && _selectedPerk.Selected)
- {
- return;
- }
- _selectedPerk.Selected = !_selectedPerk.Selected;
- if (_selectedPerk.Selected)
- {
- selectedInMyGroup.Add(_selectedPerk);
- if (!perkManager.CurrentlyEquipped.Contains(_selectedPerk.Equippable))
- {
- perkManager.CurrentlyEquipped.Add(_selectedPerk.Equippable);
- }
- if (selectedInMyGroup.Count > selectableAmount)
- {
- PerkSelectionItem perkSelectionItem = selectedInMyGroup[0];
- perkSelectionItem.Selected = false;
- selectedInMyGroup.Remove(perkSelectionItem);
- perkManager.CurrentlyEquipped.Remove(perkSelectionItem.Equippable);
- }
- }
- else
- {
- selectedInMyGroup.Remove(_selectedPerk);
- perkManager.CurrentlyEquipped.Remove(_selectedPerk.Equippable);
- }
- }
-}
diff --git a/GameCode/PerkSelectionItem.cs b/GameCode/PerkSelectionItem.cs
deleted file mode 100644
index 6e43dea..0000000
--- a/GameCode/PerkSelectionItem.cs
+++ /dev/null
@@ -1,80 +0,0 @@
-using UnityEngine;
-using UnityEngine.EventSystems;
-using UnityEngine.UI;
-
-public class PerkSelectionItem : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
-{
- private LevelSelectManager levelSelectManager;
-
- [SerializeField]
- private GameObject selectedMarker;
-
- private PerkSelectionGroup perkSelectionGroup;
-
- private Color colorBasic;
-
- private Image image;
-
- [SerializeField]
- private Color hoverColor;
-
- private bool mouseIsOver;
-
- private Equippable equippable;
-
- public Equippable Equippable => equippable;
-
- public bool Selected
- {
- get
- {
- return selectedMarker.activeInHierarchy;
- }
- set
- {
- selectedMarker.SetActive(value);
- }
- }
-
- public void OnPointerEnter(PointerEventData eventData)
- {
- mouseIsOver = true;
- }
-
- public void OnPointerExit(PointerEventData eventData)
- {
- mouseIsOver = false;
- if (levelSelectManager.ShowingTooltipFor == equippable)
- {
- levelSelectManager.ShowTooltip(null);
- }
- }
-
- private void Update()
- {
- image.color = (mouseIsOver ? hoverColor : colorBasic);
- if (mouseIsOver)
- {
- levelSelectManager.ShowTooltip(equippable);
- }
- if (Input.GetMouseButtonDown(0) && mouseIsOver && (bool)perkSelectionGroup)
- {
- perkSelectionGroup.SelectPerk(this);
- }
- }
-
- public void Initialize(Equippable _equippable)
- {
- image = GetComponent<Image>();
- colorBasic = image.color;
- perkSelectionGroup = GetComponentInParent<PerkSelectionGroup>();
- Debug.Log(perkSelectionGroup);
- levelSelectManager = LevelSelectManager.instance;
- image.sprite = _equippable.icon;
- equippable = _equippable;
- if (PerkManager.instance.CurrentlyEquipped.Contains(equippable) && (bool)perkSelectionGroup)
- {
- perkSelectionGroup.SelectPerk(this);
- }
- }
-}
diff --git a/GameCode/PerkSelectionTooltipHelper.cs b/GameCode/PerkSelectionTooltipHelper.cs
deleted file mode 100644
index 9ea47af..0000000
--- a/GameCode/PerkSelectionTooltipHelper.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-using I2.Loc;
-using MPUIKIT;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class PerkSelectionTooltipHelper : MonoBehaviour
-{
- public UIFrame targetFrame;
-
- public TextMeshProUGUI selectionTitle;
-
- public TextMeshProUGUI selectionDescription;
-
- public Image selectionIcon;
-
- public MPImageBasic background;
-
- public UIParentResizer sizer;
-
- public bool disableOnNullSelect;
-
- public GameObject tooltipParent;
-
- private TFUIEquippable currentElement;
-
- public void OnSelection()
- {
- if (targetFrame.CurrentSelection == null)
- {
- return;
- }
- TFUIEquippable tFUIEquippable = targetFrame.CurrentSelection as TFUIEquippable;
- if (tFUIEquippable == null)
- {
- if (disableOnNullSelect)
- {
- tooltipParent.SetActive(value: false);
- }
- return;
- }
- if ((bool)tooltipParent)
- {
- tooltipParent.SetActive(value: true);
- }
- currentElement = tFUIEquippable;
- UpdateTooltip();
- }
-
- public void OnFocus()
- {
- if (targetFrame.CurrentFocus == null)
- {
- OnSelection();
- return;
- }
- if ((bool)tooltipParent)
- {
- tooltipParent.SetActive(value: true);
- }
- TFUIEquippable tFUIEquippable = targetFrame.CurrentFocus as TFUIEquippable;
- if (tFUIEquippable == null)
- {
- if (disableOnNullSelect)
- {
- tooltipParent.SetActive(value: false);
- }
- }
- else
- {
- currentElement = tFUIEquippable;
- UpdateTooltip();
- }
- }
-
- public void UpdateTooltip()
- {
- if (currentElement == null)
- {
- return;
- }
- string text = "";
- string text2 = "";
- Equippable data = currentElement.Data;
- if (currentElement.Locked)
- {
- text = LocalizationManager.GetTranslation("Menu/Locked");
- text2 = LocalizationManager.GetTranslation("Menu/Locked Choice Description");
- if (data is EquippableWeapon)
- {
- text2 = LocalizationManager.GetTranslation("Menu/Locked Weapon Description");
- }
- else if (data is EquippablePerk)
- {
- text2 = LocalizationManager.GetTranslation("Menu/Locked Perk Description");
- }
- else if (data is EquippableMutation)
- {
- text2 = LocalizationManager.GetTranslation("Menu/Locked Mutator Description");
- }
- selectionIcon.sprite = currentElement.IconImg.sprite;
- }
- else
- {
- text = LocalizationManager.GetTranslation(data.LOCIDENTIFIER_NAME);
- text2 = LocalizationManager.GetTranslation(data.LOCIDENTIFIER_DESCRIPTION);
- selectionIcon.sprite = data.icon;
- }
- selectionTitle.text = text;
- selectionDescription.text = text2;
- background.color = currentElement.GetBackgroundColor;
- selectionIcon.color = currentElement.GetIconColor;
- sizer.Trigger();
- }
-}
diff --git a/GameCode/PerkWeaponModifyer.cs b/GameCode/PerkWeaponModifyer.cs
deleted file mode 100644
index ab8d4bc..0000000
--- a/GameCode/PerkWeaponModifyer.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class PerkWeaponModifyer : MonoBehaviour
-{
- public Equippable requiredPerk;
-
- public Weapon weaponToInsert;
-
- public AutoAttack autoAttack;
-
- private void Start()
- {
- if (PerkManager.IsEquipped(requiredPerk))
- {
- autoAttack.weapon = weaponToInsert;
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/PhysicalCoinAnimator.cs b/GameCode/PhysicalCoinAnimator.cs
deleted file mode 100644
index 2f44485..0000000
--- a/GameCode/PhysicalCoinAnimator.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class PhysicalCoinAnimator : MonoBehaviour
-{
- public float animationTime = 0.5f;
-
- public AnimationCurve animationCurve;
-
- private float clock;
-
- private void Awake()
- {
- base.transform.localScale = Vector3.zero;
- }
-
- private void Update()
- {
- clock += Time.deltaTime;
- base.transform.localScale = Vector3.one * animationCurve.Evaluate(clock / animationTime);
- if (clock >= animationTime)
- {
- base.transform.localScale = Vector3.one;
- Object.Destroy(this);
- }
- }
-}
diff --git a/GameCode/PlayLevelButton.cs b/GameCode/PlayLevelButton.cs
deleted file mode 100644
index b330372..0000000
--- a/GameCode/PlayLevelButton.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using UnityEngine;
-using UnityEngine.EventSystems;
-using UnityEngine.UI;
-
-public class PlayLevelButton : MonoBehaviour, IPointerEnterHandler, IEventSystemHandler, IPointerExitHandler
-{
- private bool mouseIsOver;
-
- private Color colorBasic;
-
- private Image image;
-
- [SerializeField]
- private Color hoverColor;
-
- private void Start()
- {
- image = GetComponent<Image>();
- colorBasic = image.color;
- }
-
- public void OnPointerEnter(PointerEventData eventData)
- {
- mouseIsOver = true;
- }
-
- public void OnPointerExit(PointerEventData eventData)
- {
- mouseIsOver = false;
- }
-
- private void Update()
- {
- image.color = (mouseIsOver ? hoverColor : colorBasic);
- if (Input.GetMouseButtonDown(0) && mouseIsOver)
- {
- LevelSelectManager.instance.PlayButtonPressed();
- }
- }
-}
diff --git a/GameCode/PlayMusicOnStart.cs b/GameCode/PlayMusicOnStart.cs
deleted file mode 100644
index ebf6369..0000000
--- a/GameCode/PlayMusicOnStart.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using UnityEngine;
-
-public class PlayMusicOnStart : MonoBehaviour
-{
- [SerializeField]
- private AudioClip audioClip;
-
- [SerializeField]
- private float fadeDuration = 4f;
-
- [SerializeField]
- private bool destroyEntireGameObject = true;
-
- private void Start()
- {
- MusicManager instance = MusicManager.instance;
- if (instance != null)
- {
- instance.PlayMusic(audioClip, fadeDuration);
- }
- else
- {
- Debug.LogWarning("MusicManager instance not found.");
- }
- Object.Destroy(this);
- if (destroyEntireGameObject)
- {
- Object.Destroy(base.gameObject);
- }
- }
-}
diff --git a/GameCode/PlayOneShotAfterSeconds.cs b/GameCode/PlayOneShotAfterSeconds.cs
deleted file mode 100644
index 1bf1a43..0000000
--- a/GameCode/PlayOneShotAfterSeconds.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using UnityEngine;
-
-public class PlayOneShotAfterSeconds : MonoBehaviour
-{
- public float initialDelay = 1f;
-
- public ThronefallAudioManager.AudioOneShot type;
-
- private float timer;
-
- private void Update()
- {
- if (timer <= initialDelay)
- {
- timer += Time.deltaTime;
- if (timer > initialDelay)
- {
- ThronefallAudioManager.WorldSpaceOneShot(type, base.transform.position);
- }
- }
- }
-}
diff --git a/GameCode/PlayerAttack.cs b/GameCode/PlayerAttack.cs
deleted file mode 100644
index a3f84ef..0000000
--- a/GameCode/PlayerAttack.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using Rewired;
-using UnityEngine;
-
-public class PlayerAttack : MonoBehaviour
-{
- public AttackCooldownAnimation ui;
-
- private ManualAttack attack;
-
- private Player input;
-
- private void Start()
- {
- input = ReInput.players.GetPlayer(0);
- }
-
- private void Update()
- {
- if ((bool)attack)
- {
- attack.Tick();
- ui.SetCurrentCooldownPercentage(attack.CooldownPercentage);
- }
- }
-
- public void AssignManualAttack(ManualAttack target)
- {
- attack = target;
- }
-}
diff --git a/GameCode/PlayerAttackAnimator.cs b/GameCode/PlayerAttackAnimator.cs
deleted file mode 100644
index 10407a6..0000000
--- a/GameCode/PlayerAttackAnimator.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PlayerAttackAnimator : MonoBehaviour
-{
- public List<OneShotAnimationBase> animations = new List<OneShotAnimationBase>();
-
- private ManualAttack playerAttack;
-
- public void AssignAttack(ManualAttack attack)
- {
- playerAttack = attack;
- playerAttack.onAttack.AddListener(TriggerAnimations);
- }
-
- private void TriggerAnimations()
- {
- if (!base.gameObject.activeInHierarchy)
- {
- return;
- }
- foreach (OneShotAnimationBase animation in animations)
- {
- animation.Trigger();
- }
- }
-}
diff --git a/GameCode/PlayerAttackTargetFacer.cs b/GameCode/PlayerAttackTargetFacer.cs
deleted file mode 100644
index 6692d49..0000000
--- a/GameCode/PlayerAttackTargetFacer.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using UnityEngine;
-
-public class PlayerAttackTargetFacer : MonoBehaviour
-{
- public Transform targetTransform;
-
- public ManualAttack attack;
-
- public float maxRotationDelta = 360f;
-
- public float lookBackTime = 0.4f;
-
- private Vector3 desiredForwardVector;
-
- private Quaternion desiredRotation = Quaternion.identity;
-
- private float lookClock;
-
- private bool shouldReset;
-
- public void AssignAttack(ManualAttack _attack)
- {
- attack = _attack;
- attack.onAttack.AddListener(UpdateTarget);
- if (attack.cooldownTime <= lookBackTime)
- {
- lookBackTime = attack.cooldownTime + 0.05f;
- }
- }
-
- private void UpdateTarget()
- {
- if (!(attack.LastTargetPos == Vector3.zero))
- {
- desiredForwardVector = attack.LastTargetPos - targetTransform.position;
- desiredForwardVector.y = 0f;
- desiredForwardVector.Normalize();
- desiredRotation = Quaternion.LookRotation(desiredForwardVector, Vector3.up);
- lookClock = lookBackTime;
- }
- }
-
- private void Update()
- {
- if (lookClock >= 0f)
- {
- lookClock -= Time.deltaTime;
- if (!targetTransform.rotation.Equals(desiredRotation))
- {
- targetTransform.rotation = Quaternion.RotateTowards(targetTransform.rotation, desiredRotation, maxRotationDelta * Time.deltaTime);
- }
- if (lookClock <= 0f)
- {
- shouldReset = true;
- }
- }
- else if (shouldReset)
- {
- targetTransform.rotation = Quaternion.RotateTowards(targetTransform.rotation, targetTransform.parent.rotation, maxRotationDelta * Time.deltaTime);
- if (targetTransform.rotation.Equals(targetTransform.parent.rotation))
- {
- shouldReset = false;
- }
- }
- }
-}
diff --git a/GameCode/PlayerCharacterAudio.cs b/GameCode/PlayerCharacterAudio.cs
deleted file mode 100644
index 2e951ef..0000000
--- a/GameCode/PlayerCharacterAudio.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-using UnityEngine;
-
-public class PlayerCharacterAudio : MonoBehaviour
-{
- public Hp playerHp;
-
- public AutoRevive playerReviveComponent;
-
- public AudioSource stepAudioSource;
-
- public AudioSource fxAudioSource;
-
- public AudioSource dmgAudioSource;
-
- public PlayerMovement targetController;
-
- public float fadeTime = 0.3f;
-
- public float sprintPitch = 1.1f;
-
- private PlayerWeaponAudio weaponAudio;
-
- private float initialVolume;
-
- private float initialPitch;
-
- private float fadeSpeed;
-
- private void Start()
- {
- initialPitch = stepAudioSource.pitch;
- initialVolume = stepAudioSource.volume;
- stepAudioSource.volume = 0f;
- stepAudioSource.priority = 110;
- fadeSpeed = initialVolume / fadeTime;
- playerHp.OnKillOrKnockout.AddListener(OnDeath);
- playerHp.OnReceiveDamage.AddListener(OnDmg);
- playerReviveComponent.onReviveTrigger.AddListener(OnRevive);
- }
-
- public void OnWeaponEquip(ManualAttack weapon)
- {
- weaponAudio = weapon.GetComponent<PlayerWeaponAudio>();
- weaponAudio.autoWeapon.onAttack.AddListener(PlayAttackSound);
- }
-
- private void PlayAttackSound()
- {
- fxAudioSource.priority = 5;
- fxAudioSource.pitch = Random.Range(1f - weaponAudio.pitchRange, 1f + weaponAudio.pitchRange);
- fxAudioSource.PlayOneShot(weaponAudio.AttackSound.GetRandomClip(), weaponAudio.volume);
- }
-
- private void OnDeath()
- {
- dmgAudioSource.priority = 5;
- dmgAudioSource.pitch = 1f;
- dmgAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerDeath.GetRandomClip(), 1f);
- }
-
- private void OnDmg(bool b)
- {
- dmgAudioSource.priority = 5;
- dmgAudioSource.pitch = Random.Range(0.9f, 1.1f);
- dmgAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerDamage.GetRandomClip(), 0.65f);
- }
-
- private void OnRevive()
- {
- fxAudioSource.priority = 5;
- fxAudioSource.pitch = 1f;
- fxAudioSource.PlayOneShot(ThronefallAudioManager.Instance.audioContent.PlayerRevive, 0.8f);
- }
-
- private void Update()
- {
- if (targetController.Sprinting)
- {
- stepAudioSource.pitch = sprintPitch;
- }
- else
- {
- stepAudioSource.pitch = initialPitch;
- }
- if (targetController.Moving && (playerHp == null || !playerHp.KnockedOut))
- {
- stepAudioSource.volume = Mathf.MoveTowards(stepAudioSource.volume, initialVolume, fadeSpeed * Time.unscaledDeltaTime);
- }
- else
- {
- stepAudioSource.volume = Mathf.MoveTowards(stepAudioSource.volume, 0f, fadeSpeed * Time.unscaledDeltaTime);
- }
- }
-}
diff --git a/GameCode/PlayerHpRegen.cs b/GameCode/PlayerHpRegen.cs
deleted file mode 100644
index d739844..0000000
--- a/GameCode/PlayerHpRegen.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-using UnityEngine;
-
-[RequireComponent(typeof(Hp))]
-public class PlayerHpRegen : MonoBehaviour
-{
- private Hp hp;
-
- public float delayTillRegenerationStarts;
-
- public float timeToRegenerateFullHealth;
-
- private float timeSinceLastTakenDamage;
-
- private float hpRemember;
-
- private bool heavyArmorEquipped;
-
- private bool godsLotionEquipped;
-
- private bool godOfDeseaseActive;
-
- [SerializeField]
- private Equippable heavyArmorPerk;
-
- [SerializeField]
- private Equippable godsLotionPerk;
-
- private void Start()
- {
- hp = GetComponent<Hp>();
- hpRemember = hp.HpValue;
- heavyArmorEquipped = PerkManager.IsEquipped(heavyArmorPerk);
- godsLotionEquipped = PerkManager.IsEquipped(godsLotionPerk);
- if (heavyArmorEquipped)
- {
- timeToRegenerateFullHealth *= PerkManager.instance.heavyArmor_HpMultiplyer;
- hp.maxHp *= PerkManager.instance.heavyArmor_HpMultiplyer;
- hp.Heal(float.MaxValue);
- }
- if (godsLotionEquipped)
- {
- delayTillRegenerationStarts *= PerkManager.instance.godsLotion_RegenDelayMultiplyer;
- timeToRegenerateFullHealth /= PerkManager.instance.godsLotion_RegenRateMultiplyer;
- }
- }
-
- private void Update()
- {
- timeSinceLastTakenDamage += Time.deltaTime;
- if (hp.HpValue < hpRemember)
- {
- timeSinceLastTakenDamage = 0f;
- }
- hpRemember = hp.HpValue;
- if (timeSinceLastTakenDamage >= delayTillRegenerationStarts)
- {
- hp.Heal(hp.maxHp / timeToRegenerateFullHealth * Time.deltaTime);
- }
- }
-}
diff --git a/GameCode/PlayerInteraction.cs b/GameCode/PlayerInteraction.cs
deleted file mode 100644
index 184045b..0000000
--- a/GameCode/PlayerInteraction.cs
+++ /dev/null
@@ -1,205 +0,0 @@
-using Rewired;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class PlayerInteraction : MonoBehaviour
-{
- private int balance;
-
- public float coinMagnetRadius = 10f;
-
- public LayerMask coinLayer;
-
- public float interactionRadius = 3f;
-
- public LayerMask interactorLayer;
-
- private ManualAttack manualAttack;
-
- private int networth;
-
- public PlayerCharacterAudio playerAudio;
-
- public GameObject coinSpendFX;
-
- public Transform coinSpendFXOrigin;
-
- private TagManager tagManager;
-
- [HideInInspector]
- public UnityEvent<int> onBalanceGain = new UnityEvent<int>();
-
- [HideInInspector]
- public UnityEvent<int> onBalanceSpend = new UnityEvent<int>();
-
- [HideInInspector]
- public UnityEvent onFocusPaymentInteraction = new UnityEvent();
-
- [HideInInspector]
- public UnityEvent onUnfocusPaymentInteraction = new UnityEvent();
-
- public static PlayerInteraction instance;
-
- private InteractorBase focussedInteractor;
-
- private Player input;
-
- public int Networth => networth;
-
- public ManualAttack EquippedWeapon => manualAttack;
-
- public bool IsFreeToCallNight
- {
- get
- {
- if (!LocalGamestate.Instance.PlayerFrozen && focussedInteractor == null && tagManager.CountObjectsWithTag(TagManager.ETag.CastleCenter) > 0 && TutorialManager.AllowStartingTheNight && !EnemySpawner.instance.MatchOver)
- {
- return LocalGamestate.Instance.CurrentState == LocalGamestate.State.InMatch;
- }
- return false;
- }
- }
-
- public int Balance => balance;
-
- public int TrueBalance => balance + TagManager.instance.coins.Count + CoinSpawner.AllCoinsLeftToBeSpawned;
-
- public InteractorBase FocussedInteractor => focussedInteractor;
-
- private void Awake()
- {
- instance = this;
- }
-
- public void EquipWeapon(ManualAttack _manualAttack)
- {
- manualAttack = _manualAttack;
- playerAudio.OnWeaponEquip(manualAttack);
- }
-
- private void Start()
- {
- input = ReInput.players.GetPlayer(0);
- tagManager = TagManager.instance;
- }
-
- private void Update()
- {
- FetchCoins();
- FetchInteractors();
- RunInteraction();
- }
-
- private void RunInteraction()
- {
- if (LocalGamestate.Instance.PlayerFrozen)
- {
- return;
- }
- if (input.GetButtonDown("Interact"))
- {
- if ((bool)focussedInteractor)
- {
- focussedInteractor.InteractionBegin(this);
- }
- else if ((bool)manualAttack)
- {
- manualAttack.TryToAttack();
- }
- }
- if (input.GetButton("Interact") && (bool)focussedInteractor)
- {
- focussedInteractor.InteractionHold(this);
- }
- if (input.GetButtonUp("Interact") && (bool)focussedInteractor)
- {
- focussedInteractor.InteractionEnd(this);
- }
- if (input.GetButton("Preview Build Options"))
- {
- BuildingInteractor.displayAllBuildPreviews = true;
- }
- else
- {
- BuildingInteractor.displayAllBuildPreviews = false;
- }
- }
-
- private void FetchInteractors()
- {
- if (input.GetButton("Call Night") || input.GetButton("Interact") || ((bool)focussedInteractor && focussedInteractor is BuildingInteractor && (focussedInteractor as BuildingInteractor).IsWaitingForChoice))
- {
- return;
- }
- Collider[] array = Physics.OverlapSphere(base.transform.position, interactionRadius, interactorLayer);
- InteractorBase interactorBase = null;
- float num = float.PositiveInfinity;
- Collider[] array2 = array;
- foreach (Collider collider in array2)
- {
- InteractorBase component = collider.GetComponent<InteractorBase>();
- if ((bool)component && component.CanBeInteractedWith)
- {
- float num2 = Vector3.Distance(base.transform.position, collider.ClosestPoint(base.transform.position));
- if (num2 < num)
- {
- interactorBase = component;
- num = num2;
- }
- }
- }
- if ((bool)focussedInteractor && focussedInteractor != interactorBase)
- {
- if (focussedInteractor is BuildingInteractor)
- {
- onUnfocusPaymentInteraction.Invoke();
- }
- focussedInteractor.Unfocus(this);
- focussedInteractor = null;
- }
- if ((bool)interactorBase && interactorBase != focussedInteractor)
- {
- if (interactorBase is BuildingInteractor)
- {
- onFocusPaymentInteraction.Invoke();
- }
- interactorBase.Focus(this);
- focussedInteractor = interactorBase;
- }
- }
-
- private void FetchCoins()
- {
- Collider[] array = Physics.OverlapSphere(base.transform.position, coinMagnetRadius, coinLayer);
- for (int i = 0; i < array.Length; i++)
- {
- Coin component = array[i].GetComponent<Coin>();
- if (component != null && component.IsFree)
- {
- component.SetTarget(this);
- }
- }
- }
-
- public void AddCoin(int amount = 1)
- {
- balance += amount;
- networth += amount;
- onBalanceGain.Invoke(amount);
- }
-
- public void SpendCoins(int amount)
- {
- balance -= amount;
- onBalanceSpend.Invoke(amount);
- Object.Instantiate(coinSpendFX, coinSpendFXOrigin.position, coinSpendFXOrigin.rotation, base.transform);
- }
-
- private void OnDrawGizmosSelected()
- {
- Gizmos.color = Color.blue;
- Gizmos.DrawWireSphere(base.transform.position, interactionRadius);
- Gizmos.color = Color.yellow;
- Gizmos.DrawWireSphere(base.transform.position, coinMagnetRadius);
- }
-}
diff --git a/GameCode/PlayerManager.cs b/GameCode/PlayerManager.cs
deleted file mode 100644
index 8fe94dd..0000000
--- a/GameCode/PlayerManager.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PlayerManager : MonoBehaviour
-{
- private static PlayerManager instance;
-
- protected List<PlayerMovement> registeredPlayers = new List<PlayerMovement>();
-
- public static PlayerManager Instance => instance;
-
- public PlayerMovement[] RegisteredPlayers => registeredPlayers.ToArray();
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(instance);
- Debug.LogWarning("Found more than one player manager in scene. Destroyed old one.");
- }
- instance = this;
- }
-
- public static void RegisterPlayer(PlayerMovement player)
- {
- if (!instance)
- {
- Debug.Log("No PlayerManager exists in scene.");
- }
- else
- {
- instance.registeredPlayers.Add(player);
- }
- }
-
- public static void UnregisterPlayer(PlayerMovement player)
- {
- if (!instance)
- {
- Debug.Log("No PlayerManager exists in scene.");
- }
- else
- {
- instance.registeredPlayers.Remove(player);
- }
- }
-
- public static PlayerMovement GetClosestPlayer(Vector3 position)
- {
- if (!instance)
- {
- Debug.Log("No PlayerManager exists in scene.");
- return null;
- }
- PlayerMovement result = null;
- float num = float.PositiveInfinity;
- foreach (PlayerMovement registeredPlayer in instance.registeredPlayers)
- {
- float num2 = Vector3.Distance(position, registeredPlayer.transform.position);
- if (num2 < num)
- {
- num = num2;
- result = registeredPlayer;
- }
- }
- return result;
- }
-}
diff --git a/GameCode/PlayerMovement.cs b/GameCode/PlayerMovement.cs
deleted file mode 100644
index db7c18a..0000000
--- a/GameCode/PlayerMovement.cs
+++ /dev/null
@@ -1,152 +0,0 @@
-using System.Collections;
-using Pathfinding.RVO;
-using Rewired;
-using UnityEngine;
-
-[RequireComponent(typeof(CharacterController))]
-[RequireComponent(typeof(RVOController))]
-public class PlayerMovement : MonoBehaviour
-{
- public float speed = 4f;
-
- public float sprintSpeed = 12f;
-
- public Transform meshParent;
-
- public float maxMeshRotationSpeed = 360f;
-
- public Animator meshAnimator;
-
- private Hp hp;
-
- private Transform viewTransform;
-
- private CharacterController controller;
-
- private Player input;
-
- private Quaternion desiredMeshRotation;
-
- private RVOController rvoController;
-
- private float yVelocity;
-
- private bool heavyArmorEquipped;
-
- private bool racingHorseEquipped;
-
- private bool moving;
-
- private bool sprinting;
-
- private bool sprintingToggledOn;
-
- public static PlayerMovement instance;
-
- [SerializeField]
- private Equippable heavyArmorPerk;
-
- [SerializeField]
- private Equippable warHorsePerk;
-
- private Vector3 velocity;
-
- public bool Moving => moving;
-
- public bool Sprinting => sprinting;
-
- public Vector3 Velocity => velocity;
-
- private void Awake()
- {
- instance = this;
- }
-
- public void TeleportTo(Vector3 _position)
- {
- controller.enabled = false;
- controller.transform.position = _position;
- StartCoroutine(EnableControllerNextFrame(controller));
- }
-
- private void Start()
- {
- PlayerManager.RegisterPlayer(this);
- viewTransform = Camera.main.transform;
- controller = GetComponent<CharacterController>();
- input = ReInput.players.GetPlayer(0);
- rvoController = GetComponent<RVOController>();
- hp = GetComponent<Hp>();
- heavyArmorEquipped = PerkManager.IsEquipped(heavyArmorPerk);
- racingHorseEquipped = PerkManager.IsEquipped(warHorsePerk);
- }
-
- private void Update()
- {
- Vector2 vector = new Vector2(input.GetAxis("Move Vertical"), input.GetAxis("Move Horizontal"));
- if (LocalGamestate.Instance.PlayerFrozen)
- {
- vector = Vector2.zero;
- }
- Vector3 normalized = Vector3.ProjectOnPlane(viewTransform.forward, Vector3.up).normalized;
- Vector3 normalized2 = Vector3.ProjectOnPlane(viewTransform.right, Vector3.up).normalized;
- velocity = Vector3.zero;
- velocity += normalized * vector.x;
- velocity += normalized2 * vector.y;
- velocity = Vector3.ClampMagnitude(velocity, 1f);
- if (input.GetButtonDown("Sprint Toggle"))
- {
- sprintingToggledOn = !sprintingToggledOn;
- }
- if (sprintingToggledOn && input.GetButton("Sprint"))
- {
- sprintingToggledOn = false;
- }
- sprinting = (input.GetButton("Sprint") || sprintingToggledOn) && hp.HpPercentage >= 1f;
- velocity *= (sprinting ? sprintSpeed : speed);
- if (heavyArmorEquipped && DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- velocity *= PerkManager.instance.heavyArmor_SpeedMultiplyer;
- }
- if (racingHorseEquipped)
- {
- velocity *= PerkManager.instance.racingHorse_SpeedMultiplyer;
- }
- rvoController.velocity = velocity;
- moving = velocity.sqrMagnitude > 0.1f;
- if (moving)
- {
- desiredMeshRotation = Quaternion.LookRotation(velocity.normalized, Vector3.up);
- }
- if (desiredMeshRotation != meshParent.rotation)
- {
- meshParent.rotation = Quaternion.RotateTowards(meshParent.rotation, desiredMeshRotation, maxMeshRotationSpeed * Time.deltaTime);
- }
- meshAnimator.SetBool("Moving", moving);
- meshAnimator.SetBool("Sprinting", sprinting);
- if (controller.enabled)
- {
- if (controller.isGrounded)
- {
- yVelocity = 0f;
- }
- else
- {
- yVelocity += -9.81f * Time.deltaTime;
- }
- velocity += Vector3.up * yVelocity;
- controller.Move(velocity * Time.deltaTime);
- }
- }
-
- private void OnDisable()
- {
- meshAnimator.SetBool("Moving", value: false);
- }
-
- private IEnumerator EnableControllerNextFrame(CharacterController controller)
- {
- yield return new WaitForEndOfFrame();
- controller.enabled = true;
- }
-}
diff --git a/GameCode/PlayerScept.cs b/GameCode/PlayerScept.cs
deleted file mode 100644
index 6d1fa03..0000000
--- a/GameCode/PlayerScept.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System.Collections;
-using Rewired;
-using UnityEngine;
-
-public class PlayerScept : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public GameObject loadoutParent;
-
- public Transform scept;
-
- public Transform scepterInteractionTarget;
-
- public AnimationCurve inCurve;
-
- public AnimationCurve outCurve;
-
- public float inTime = 0.2f;
-
- public float outTime = 0.4f;
-
- private Player input;
-
- private Vector3 initPos;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- input = ReInput.players.GetPlayer(0);
- initPos = scept.localPosition;
- }
-
- private void Update()
- {
- if (input.GetButtonDown("Interact"))
- {
- StopAllCoroutines();
- StartCoroutine(AnimationIn());
- }
- if (input.GetButtonUp("Interact"))
- {
- StopAllCoroutines();
- StartCoroutine(AnimationOut());
- }
- }
-
- private IEnumerator AnimationIn()
- {
- float timer = 0f;
- Vector3 startPos = scept.localPosition;
- while (timer < inTime)
- {
- timer += Time.deltaTime;
- scept.localPosition = Vector3.Lerp(startPos, scepterInteractionTarget.localPosition, inCurve.Evaluate(Mathf.InverseLerp(0f, inTime, timer)));
- yield return null;
- }
- scept.localPosition = scepterInteractionTarget.localPosition;
- }
-
- private IEnumerator AnimationOut()
- {
- float timer = 0f;
- _ = scept.localPosition;
- while (timer < outTime)
- {
- timer += Time.deltaTime;
- scept.localPosition = Vector3.Lerp(scept.localPosition, initPos, outCurve.Evaluate(Mathf.InverseLerp(0f, outTime, timer)));
- yield return null;
- }
- scept.localPosition = initPos;
- }
-
- public void OnDawn_AfterSunrise()
- {
- loadoutParent.SetActive(value: true);
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- loadoutParent.SetActive(value: false);
- }
-}
diff --git a/GameCode/PlayerUpgradeManager.cs b/GameCode/PlayerUpgradeManager.cs
deleted file mode 100644
index 5a07815..0000000
--- a/GameCode/PlayerUpgradeManager.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using UnityEngine;
-
-public class PlayerUpgradeManager : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public static PlayerUpgradeManager instance;
-
- public float playerDamageMultiplyer = 1f;
-
- public bool assassinsTraining;
-
- public bool godlyCurse;
-
- public bool magicArmor;
-
- public bool commander;
-
- public float godlyCurseDamageMultiplyer = 1.5f;
-
- private int damageIncreases;
-
- [SerializeField]
- private Equippable glassCanon;
-
- [SerializeField]
- private float glassCanon_dmgMulti = 1.5f;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- if ((bool)DayNightCycle.Instance)
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
- if (PerkManager.instance.CommanderModeActive)
- {
- playerDamageMultiplyer *= PerkManager.instance.commanderModeSelfDmgMulti;
- }
- if (PerkManager.instance.GlassCanonActive)
- {
- playerDamageMultiplyer *= PerkManager.instance.glassCanon_dmgMulti;
- }
- }
-
- public void OnDusk()
- {
- GetStrongerIfInWarriorMode();
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- GetStrongerIfInWarriorMode();
- }
-
- public void GetStrongerIfInWarriorMode()
- {
- while (PerkManager.instance.WarriorModeActive && damageIncreases < EnemySpawner.instance.Wavenumber)
- {
- damageIncreases++;
- playerDamageMultiplyer *= Mathf.Pow(PerkManager.instance.warriorModeSelfDmgMultiMax, 1f / (float)EnemySpawner.instance.WaveCount);
- }
- }
-}
diff --git a/GameCode/PlayerWeaponAudio.cs b/GameCode/PlayerWeaponAudio.cs
deleted file mode 100644
index 90cbfd5..0000000
--- a/GameCode/PlayerWeaponAudio.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using UnityEngine;
-
-public class PlayerWeaponAudio : MonoBehaviour
-{
- public enum WeaponType
- {
- Sword,
- Spear,
- Bow
- }
-
- public ManualAttack autoWeapon;
-
- public ManualAttack activeAbility;
-
- public WeaponType weaponType;
-
- public float pitchRange;
-
- public float volume = 0.75f;
-
- [HideInInspector]
- private AudioSet.ClipArray attackSound;
-
- private bool initialized;
-
- public AudioSet.ClipArray AttackSound
- {
- get
- {
- if (!initialized)
- {
- Initialize();
- }
- return attackSound;
- }
- }
-
- private void Initialize()
- {
- switch (weaponType)
- {
- case WeaponType.Bow:
- attackSound = ThronefallAudioManager.Instance.audioContent.PlayerBow;
- break;
- case WeaponType.Spear:
- attackSound = ThronefallAudioManager.Instance.audioContent.PlayerSpear;
- break;
- case WeaponType.Sword:
- attackSound = ThronefallAudioManager.Instance.audioContent.PlayerSword;
- break;
- }
- initialized = true;
- }
-}
diff --git a/GameCode/PlayerWeaponVisuals.cs b/GameCode/PlayerWeaponVisuals.cs
deleted file mode 100644
index 0e5aa6f..0000000
--- a/GameCode/PlayerWeaponVisuals.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using UnityEngine;
-
-public class PlayerWeaponVisuals : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- private GameObject visuals;
-
- public void Init(GameObject _visuals, ManualAttack _attack)
- {
- visuals = _visuals;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- visuals.GetComponent<PlayerAttackAnimator>().AssignAttack(_attack);
- if (TutorialManager.instance != null)
- {
- visuals.SetActive(value: true);
- }
- }
-
- public void OnDawn_AfterSunrise()
- {
- visuals.SetActive(value: false);
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- visuals.SetActive(value: true);
- }
-}
diff --git a/GameCode/PositionAnimation.cs b/GameCode/PositionAnimation.cs
deleted file mode 100644
index c50408d..0000000
--- a/GameCode/PositionAnimation.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class PositionAnimation : OneShotAnimationBase
-{
- public AnimationCurve curve;
-
- public float duration = 0.75f;
-
- public Vector3 targetPosition;
-
- public Transform transformToAnimate;
-
- private Vector3 initialPosition;
-
- private void Start()
- {
- initialPosition = transformToAnimate.localPosition;
- }
-
- private IEnumerator Animate()
- {
- transformToAnimate.localPosition = initialPosition;
- float timer = 0f;
- while (timer < duration)
- {
- transformToAnimate.localPosition = Vector3.Lerp(initialPosition, targetPosition, curve.Evaluate(timer / duration));
- timer += Time.deltaTime;
- yield return null;
- }
- transformToAnimate.localPosition = Vector3.Lerp(initialPosition, targetPosition, curve.Evaluate(1f));
- }
-
- public override void Trigger()
- {
- if (base.gameObject.activeInHierarchy)
- {
- StopAllCoroutines();
- StartCoroutine(Animate());
- }
- }
-}
diff --git a/GameCode/PowerTowerPerk.cs b/GameCode/PowerTowerPerk.cs
deleted file mode 100644
index 09466d4..0000000
--- a/GameCode/PowerTowerPerk.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class PowerTowerPerk : MonoBehaviour
-{
- [SerializeField]
- private Equippable powerTowerPerk;
-
- [SerializeField]
- private List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();
-
- [SerializeField]
- private List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
-
- private TagManager tagManager;
-
- private float attackSpeedBonus;
-
- private float nextRefreshIn = 0.2f;
-
- private TaggedObject closestTower;
-
- private void Start()
- {
- if (!PerkManager.IsEquipped(powerTowerPerk))
- {
- Object.Destroy(this);
- return;
- }
- tagManager = TagManager.instance;
- attackSpeedBonus = PerkManager.instance.powerTower_attackSpeedBonus;
- }
-
- private void Update()
- {
- nextRefreshIn -= Time.deltaTime;
- if (nextRefreshIn <= 0f)
- {
- closestTower = tagManager.FindClosestTaggedObjectWithTags(base.transform.position, mustHaveTags, mayNotHaveTags);
- nextRefreshIn = 0.2f;
- }
- if (closestTower != null)
- {
- AutoAttack[] componentsInChildren = closestTower.GetComponentsInChildren<AutoAttack>();
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].ReduceCooldownBy(attackSpeedBonus * Time.deltaTime);
- }
- HotOilTower[] componentsInChildren2 = closestTower.GetComponentsInChildren<HotOilTower>();
- for (int i = 0; i < componentsInChildren2.Length; i++)
- {
- componentsInChildren2[i].ReduceCooldownBy(attackSpeedBonus * Time.deltaTime);
- }
- }
- }
-}
diff --git a/GameCode/PracticeTargetCoinDrop.cs b/GameCode/PracticeTargetCoinDrop.cs
deleted file mode 100644
index 760d9c2..0000000
--- a/GameCode/PracticeTargetCoinDrop.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using UnityEngine;
-
-public class PracticeTargetCoinDrop : MonoBehaviour
-{
- private Hp hp;
-
- private TagManager tagManager;
-
- [SerializeField]
- private int totalCoinsToDrop = 3;
-
- private void Start()
- {
- hp = GetComponent<Hp>();
- tagManager = TagManager.instance;
- }
-
- private void Update()
- {
- if (tagManager.CountAllTaggedObjectsWithTag(TagManager.ETag.PracticeTargets) <= totalCoinsToDrop)
- {
- hp.coinCount = 1;
- }
- }
-
- private void OnDestroy()
- {
- if ((bool)hp && hp.HpValue <= 0f)
- {
- AchievementManager.UnlockAchievement(AchievementManager.Achievements.START_TUTORIAL);
- }
- }
-}
diff --git a/GameCode/PriorityAudioListener.cs b/GameCode/PriorityAudioListener.cs
deleted file mode 100644
index 127e5fb..0000000
--- a/GameCode/PriorityAudioListener.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class PriorityAudioListener : MonoBehaviour
-{
- private void OnEnable()
- {
- StartCoroutine(ExecuteAfterTime());
- }
-
- private IEnumerator ExecuteAfterTime()
- {
- while (BackupAudioListener.Instance == null)
- {
- yield return null;
- }
- BackupAudioListener.Instance.EnableBackupListener(enable: false);
- }
-
- private void OnDisable()
- {
- if (BackupAudioListener.Instance != null)
- {
- BackupAudioListener.Instance.EnableBackupListener(enable: true);
- }
- }
-}
diff --git a/GameCode/ProductionBar.cs b/GameCode/ProductionBar.cs
deleted file mode 100644
index 2f838a1..0000000
--- a/GameCode/ProductionBar.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using MPUIKIT;
-using UnityEngine;
-
-public class ProductionBar : MonoBehaviour
-{
- [SerializeField]
- private GameObject canvasParent;
-
- [SerializeField]
- private MPImage fill;
-
- private float fillAmount = -1f;
-
- public void UpdateVisual(float _fillAmount)
- {
- if (fillAmount != _fillAmount)
- {
- canvasParent.SetActive(_fillAmount > 0f);
- fill.fillAmount = _fillAmount;
- fillAmount = _fillAmount;
- }
- }
-}
diff --git a/GameCode/ProjectileAudio.cs b/GameCode/ProjectileAudio.cs
deleted file mode 100644
index 7390613..0000000
--- a/GameCode/ProjectileAudio.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using UnityEngine;
-
-public class ProjectileAudio : MonoBehaviour
-{
- public enum ProjectileType
- {
- Catapult
- }
-
- public AimbotProjectile target;
-
- public AudioSource aSource;
-
- public ProjectileType projectile;
-
- public float pitchrange = 0.2f;
-
- private void Start()
- {
- if (target != null)
- {
- target.onHit.AddListener(PlayImpact);
- }
- if (projectile == ProjectileType.Catapult)
- {
- aSource.clip = ThronefallAudioManager.Instance.audioContent.CatapultImpact.GetRandomClip();
- }
- aSource.pitch = Random.Range(1f - pitchrange, 1f + pitchrange);
- }
-
- private void PlayImpact()
- {
- aSource.Play();
- aSource.transform.parent = null;
- Object.Destroy(aSource.gameObject, aSource.clip.length);
- }
-}
diff --git a/GameCode/ProjectileImpactParticles.cs b/GameCode/ProjectileImpactParticles.cs
deleted file mode 100644
index 6592a9b..0000000
--- a/GameCode/ProjectileImpactParticles.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using UnityEngine;
-
-public class ProjectileImpactParticles : MonoBehaviour
-{
- public AimbotProjectile target;
-
- public ParticleSystem particles;
-
- private void Start()
- {
- if (target != null)
- {
- target.onHit.AddListener(Play);
- }
- }
-
- private void Play()
- {
- particles.gameObject.transform.parent = null;
- particles.Play();
- }
-}
diff --git a/GameCode/ProjectileSpawnAudio.cs b/GameCode/ProjectileSpawnAudio.cs
deleted file mode 100644
index de57603..0000000
--- a/GameCode/ProjectileSpawnAudio.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using UnityEngine;
-
-public class ProjectileSpawnAudio : MonoBehaviour
-{
- public ThronefallAudioManager.AudioOneShot oneShotType;
-
- private void Start()
- {
- ThronefallAudioManager.WorldSpaceOneShot(oneShotType, base.transform.position);
- }
-}
diff --git a/GameCode/Quest.cs b/GameCode/Quest.cs
deleted file mode 100644
index 2532576..0000000
--- a/GameCode/Quest.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using System;
-using System.Collections.Generic;
-using I2.Loc;
-
-[Serializable]
-public class Quest
-{
- public enum EType
- {
- BeatTheLevel = 0,
- AchieveScoreOf = 2,
- BeatTheLevelWith = 1,
- BeatTheLevelWithout = 3
- }
-
- public EType questType;
-
- public List<Equippable> beatTheLevelWith = new List<Equippable>();
-
- public int achieveScoreOf;
-
- public List<Equippable> beatTheLevelWithout = new List<Equippable>();
-
- private bool IsBeatLevelWith => questType == EType.BeatTheLevelWith;
-
- private bool IsAchieveScoreOf => questType == EType.AchieveScoreOf;
-
- private bool IsBeatLevelWithout => questType == EType.BeatTheLevelWithout;
-
- public bool CheckBeaten(LevelData _myLevelData)
- {
- switch (questType)
- {
- case EType.BeatTheLevel:
- return _myLevelData.beatenBest;
- case EType.AchieveScoreOf:
- return _myLevelData.highscoreBest >= achieveScoreOf;
- case EType.BeatTheLevelWith:
- {
- for (int k = 0; k < _myLevelData.levelHasBeenBeatenWith.Count; k++)
- {
- List<Equippable> list2 = _myLevelData.levelHasBeenBeatenWith[k];
- int num = beatTheLevelWith.Count;
- for (int l = 0; l < list2.Count; l++)
- {
- if (beatTheLevelWith.Contains(list2[l]))
- {
- num--;
- }
- if (num <= 0)
- {
- return true;
- }
- }
- }
- return false;
- }
- case EType.BeatTheLevelWithout:
- {
- for (int i = 0; i < _myLevelData.levelHasBeenBeatenWith.Count; i++)
- {
- List<Equippable> list = _myLevelData.levelHasBeenBeatenWith[i];
- bool flag = true;
- for (int j = 0; j < list.Count; j++)
- {
- if (beatTheLevelWithout.Contains(list[j]))
- {
- flag = false;
- break;
- }
- }
- if (flag)
- {
- return true;
- }
- }
- return false;
- }
- default:
- return false;
- }
- }
-
- public string GetMissionStatement()
- {
- string result = "";
- switch (questType)
- {
- case EType.AchieveScoreOf:
- result = LocalizationManager.GetTranslation("Achieve Score") + " " + achieveScoreOf;
- break;
- case EType.BeatTheLevel:
- result = LocalizationManager.GetTranslation("Achieve Victory");
- break;
- case EType.BeatTheLevelWith:
- result = LocalizationManager.GetTranslation("Achieve Victory With");
- foreach (Equippable item in beatTheLevelWith)
- {
- result = result + " " + item.displayName + " +";
- }
- result = result.Remove(result.Length - 1, 1);
- break;
- case EType.BeatTheLevelWithout:
- result = LocalizationManager.GetTranslation("Achieve Victory Without");
- foreach (Equippable item2 in beatTheLevelWithout)
- {
- result = result + " " + item2.displayName + " +";
- }
- result = result.Remove(result.Length - 1, 1);
- break;
- }
- return result;
- }
-}
diff --git a/GameCode/QuestConditionEquippable.cs b/GameCode/QuestConditionEquippable.cs
deleted file mode 100644
index 41c9d94..0000000
--- a/GameCode/QuestConditionEquippable.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using MPUIKIT;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class QuestConditionEquippable : MonoBehaviour
-{
- public Color weaponBgColor;
-
- public Color perkBgColor;
-
- public Color mutatorBgColor;
-
- public MPImageBasic background;
-
- public Image icon;
-
- public void SetData(Equippable data)
- {
- icon.sprite = data.icon;
- if (data is EquippableWeapon)
- {
- background.color = weaponBgColor;
- }
- if (data is EquippablePerk)
- {
- background.color = perkBgColor;
- }
- if (data is EquippableMutation)
- {
- background.color = mutatorBgColor;
- }
- }
-}
diff --git a/GameCode/QuestEntry.cs b/GameCode/QuestEntry.cs
deleted file mode 100644
index 625cbab..0000000
--- a/GameCode/QuestEntry.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-using I2.Loc;
-using TMPro;
-using UnityEngine;
-
-public class QuestEntry : MonoBehaviour
-{
- public TextMeshProUGUI questText;
-
- public TextMeshProUGUI numericalCondition;
-
- public GameObject equippableConditionsParent;
-
- public QuestConditionEquippable equippableConditionPrefab;
-
- public CanvasGroup canvasGroup;
-
- public void Init(Quest data, int index, bool completed)
- {
- string text = "<style=\"Body Bold Italic\">";
- switch (index)
- {
- case 0:
- text += "A.";
- break;
- case 1:
- text += "B.";
- break;
- case 2:
- text += "C.";
- break;
- case 3:
- text += "D.";
- break;
- case 4:
- text += "E.";
- break;
- case 5:
- text += "F.";
- break;
- case 6:
- text += "G.";
- break;
- case 7:
- text += "H.";
- break;
- }
- text += " ";
- text += "<style=\"Body Light\">";
- switch (data.questType)
- {
- case Quest.EType.AchieveScoreOf:
- equippableConditionsParent.SetActive(value: false);
- numericalCondition.gameObject.SetActive(value: true);
- numericalCondition.text = data.achieveScoreOf.ToString();
- text += LocalizationManager.GetTranslation("Quests/Achieve Score");
- break;
- case Quest.EType.BeatTheLevel:
- equippableConditionsParent.SetActive(value: false);
- numericalCondition.gameObject.SetActive(value: false);
- text += LocalizationManager.GetTranslation("Quests/Achieve Victory");
- break;
- case Quest.EType.BeatTheLevelWith:
- equippableConditionsParent.SetActive(value: true);
- numericalCondition.gameObject.SetActive(value: false);
- text += LocalizationManager.GetTranslation("Quests/Achieve Victory With");
- foreach (Equippable item in data.beatTheLevelWith)
- {
- Object.Instantiate(equippableConditionPrefab, equippableConditionsParent.transform).SetData(item);
- }
- break;
- case Quest.EType.BeatTheLevelWithout:
- equippableConditionsParent.SetActive(value: true);
- numericalCondition.gameObject.SetActive(value: false);
- text += LocalizationManager.GetTranslation("Quests/Achieve Victory Without");
- foreach (Equippable item2 in data.beatTheLevelWithout)
- {
- Object.Instantiate(equippableConditionPrefab, equippableConditionsParent.transform).SetData(item2);
- }
- break;
- }
- questText.text = text;
- if (completed)
- {
- canvasGroup.alpha = 0.1f;
- }
- }
-}
diff --git a/GameCode/QuestMenu.cs b/GameCode/QuestMenu.cs
deleted file mode 100644
index df201d3..0000000
--- a/GameCode/QuestMenu.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class QuestMenu : MonoBehaviour
-{
- public void UpdateVisualization(LevelData _levelData, List<Quest> _quests)
- {
- for (int i = 0; i < base.transform.childCount; i++)
- {
- QuestTagUI component = base.transform.GetChild(i).GetComponent<QuestTagUI>();
- if (i < _quests.Count)
- {
- component.UpdateVisualization(_quests[i], _levelData);
- }
- else
- {
- component.UpdateVisualization(null, null);
- }
- }
- }
-}
diff --git a/GameCode/QuestTagUI.cs b/GameCode/QuestTagUI.cs
deleted file mode 100644
index 0930a9c..0000000
--- a/GameCode/QuestTagUI.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class QuestTagUI : MonoBehaviour
-{
- [Header("Setup")]
- public Image completeImage;
-
- public Color completeColor;
-
- public Color incompleteColor;
-
- public TMP_Text description;
-
- public Image icon1;
-
- public GameObject crossedOut1;
-
- public Image icon2;
-
- public GameObject crossedOut2;
-
- public Image icon3;
-
- public GameObject crossedOut3;
-
- public TMP_Text goalNumber;
-
- [Header("Quest Texts")]
- public string completeLevel = "Achieve a victory.";
-
- public string achieveScoreOf = "Achieve score:";
-
- public string winWith = "Win with:";
-
- public string winWithout = "Win without:";
-
- public void UpdateVisualization(Quest _quest, LevelData _levelData)
- {
- if (_quest == null || _levelData == null)
- {
- base.gameObject.SetActive(value: false);
- return;
- }
- base.gameObject.SetActive(value: true);
- bool flag = _quest.CheckBeaten(_levelData);
- completeImage.color = (flag ? completeColor : incompleteColor);
- crossedOut1.SetActive(value: false);
- crossedOut2.SetActive(value: false);
- crossedOut3.SetActive(value: false);
- icon1.gameObject.SetActive(value: false);
- icon2.gameObject.SetActive(value: false);
- icon3.gameObject.SetActive(value: false);
- goalNumber.gameObject.SetActive(value: false);
- switch (_quest.questType)
- {
- case Quest.EType.BeatTheLevel:
- description.text = completeLevel;
- break;
- case Quest.EType.AchieveScoreOf:
- description.text = achieveScoreOf;
- goalNumber.gameObject.SetActive(value: true);
- goalNumber.text = _quest.achieveScoreOf.ToString();
- break;
- case Quest.EType.BeatTheLevelWith:
- icon1.gameObject.SetActive(_quest.beatTheLevelWith.Count > 0);
- icon2.gameObject.SetActive(_quest.beatTheLevelWith.Count > 1);
- icon3.gameObject.SetActive(_quest.beatTheLevelWith.Count > 2);
- if (_quest.beatTheLevelWith.Count > 0)
- {
- icon1.sprite = _quest.beatTheLevelWith[0].icon;
- }
- if (_quest.beatTheLevelWith.Count > 1)
- {
- icon2.sprite = _quest.beatTheLevelWith[1].icon;
- }
- if (_quest.beatTheLevelWith.Count > 2)
- {
- icon3.sprite = _quest.beatTheLevelWith[2].icon;
- }
- description.text = winWith;
- break;
- case Quest.EType.BeatTheLevelWithout:
- description.text = winWithout;
- crossedOut1.SetActive(value: true);
- crossedOut2.SetActive(value: true);
- crossedOut3.SetActive(value: true);
- icon1.gameObject.SetActive(_quest.beatTheLevelWithout.Count > 0);
- icon2.gameObject.SetActive(_quest.beatTheLevelWithout.Count > 1);
- icon3.gameObject.SetActive(_quest.beatTheLevelWithout.Count > 2);
- if (_quest.beatTheLevelWithout.Count > 0)
- {
- icon1.sprite = _quest.beatTheLevelWithout[0].icon;
- }
- if (_quest.beatTheLevelWithout.Count > 1)
- {
- icon3.sprite = _quest.beatTheLevelWithout[1].icon;
- }
- if (_quest.beatTheLevelWithout.Count > 2)
- {
- icon3.sprite = _quest.beatTheLevelWithout[2].icon;
- }
- break;
- }
- }
-}
diff --git a/GameCode/RacerRoll.cs b/GameCode/RacerRoll.cs
deleted file mode 100644
index bb85388..0000000
--- a/GameCode/RacerRoll.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using Pathfinding.RVO;
-using UnityEngine;
-
-public class RacerRoll : MonoBehaviour
-{
- public RVOController rvo;
-
- public float speedMultiplier = 90f;
-
- public Transform targetTransform;
-
- private void Update()
- {
- targetTransform.Rotate(rvo.velocity.sqrMagnitude * speedMultiplier * Time.deltaTime, 0f, 0f, Space.Self);
- }
-}
diff --git a/GameCode/ReduceChildrensBuildRequirementIfPerk.cs b/GameCode/ReduceChildrensBuildRequirementIfPerk.cs
deleted file mode 100644
index 02df554..0000000
--- a/GameCode/ReduceChildrensBuildRequirementIfPerk.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-
-public class ReduceChildrensBuildRequirementIfPerk : MonoBehaviour
-{
- [SerializeField]
- private Equippable perk;
-
- private void Update()
- {
- if (PerkManager.instance.CurrentlyEquipped.Contains(perk))
- {
- BuildSlot component = GetComponent<BuildSlot>();
- Debug.Log("Reduced build requirements of " + component.IsRootOf.Count);
- foreach (BuildSlot item in component.IsRootOf)
- {
- if (item.ActivatorBuilding == component)
- {
- item.ActivatorLevel = Mathf.Max(0, item.ActivatorLevel - 1);
- }
- }
- }
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/ResetAudioSettings.cs b/GameCode/ResetAudioSettings.cs
deleted file mode 100644
index 23fde41..0000000
--- a/GameCode/ResetAudioSettings.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using UnityEngine;
-
-public class ResetAudioSettings : MonoBehaviour
-{
- public GameObject objToRefresh;
-
- public void Trigger()
- {
- SettingsManager.Instance.ResetAudioSettings();
- objToRefresh.SetActive(value: false);
- objToRefresh.SetActive(value: true);
- }
-}
diff --git a/GameCode/ResolutionExtensions.cs b/GameCode/ResolutionExtensions.cs
deleted file mode 100644
index 989e12e..0000000
--- a/GameCode/ResolutionExtensions.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using UnityEngine;
-
-public static class ResolutionExtensions
-{
- public static bool CompareResolutions(this Resolution resA, Resolution resB)
- {
- if (resA.width == resB.width)
- {
- return resA.height == resB.height;
- }
- return false;
- }
-}
diff --git a/GameCode/RevivePanel.cs b/GameCode/RevivePanel.cs
deleted file mode 100644
index d1e6c6e..0000000
--- a/GameCode/RevivePanel.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using MPUIKIT;
-using TMPro;
-using UnityEngine;
-
-public class RevivePanel : MonoBehaviour
-{
- public GameObject revivePanel;
-
- public TMP_Text counterText;
-
- public MPImage fill;
-
- public AutoRevive playerReviveComponent;
-
- private void Update()
- {
- float timeTillRevive = playerReviveComponent.TimeTillRevive;
- if (timeTillRevive > 0f && LocalGamestate.Instance.CurrentState == LocalGamestate.State.InMatch)
- {
- revivePanel.SetActive(value: true);
- counterText.text = Mathf.Floor(timeTillRevive).ToString();
- fill.fillAmount = Mathf.InverseLerp(playerReviveComponent.reviveAfterBeingKnockedOutFor, 0f, timeTillRevive);
- }
- else
- {
- revivePanel.SetActive(value: false);
- }
- }
-}
diff --git a/GameCode/RidingDamager.cs b/GameCode/RidingDamager.cs
deleted file mode 100644
index ad8148d..0000000
--- a/GameCode/RidingDamager.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class RidingDamager : MonoBehaviour
-{
- public Equippable requiredUpgrade;
-
- public LayerMask lmRecieveDamage;
-
- public List<DamageModifyer> damage;
-
- private BoxCollider myCollider;
-
- private Collider[] tempColliders = new Collider[50];
-
- public float cooldownPerObject = 4f;
-
- private PlayerMovement playerMovement;
-
- private PlayerUpgradeManager upgradeManager;
-
- private BlacksmithUpgrades blacksmithUpgrades;
-
- private List<TaggedObject> recentlyHit = new List<TaggedObject>();
-
- private List<float> recentlyHitWhen = new List<float>();
-
- private float time;
-
- public float DamageMultiplyer => upgradeManager.playerDamageMultiplyer * blacksmithUpgrades.meleeDamage;
-
- private void Start()
- {
- if (!PerkManager.IsEquipped(requiredUpgrade))
- {
- Object.Destroy(base.gameObject);
- return;
- }
- myCollider = GetComponent<BoxCollider>();
- playerMovement = GetComponentInParent<PlayerMovement>();
- upgradeManager = PlayerUpgradeManager.instance;
- blacksmithUpgrades = BlacksmithUpgrades.instance;
- }
-
- private void Update()
- {
- Vector3 center = base.transform.localToWorldMatrix.MultiplyPoint(myCollider.center);
- Vector3 halfExtents = base.transform.localToWorldMatrix.MultiplyVector(myCollider.size);
- if (playerMovement.Moving && playerMovement.enabled)
- {
- Physics.OverlapBoxNonAlloc(center, halfExtents, tempColliders, base.transform.rotation, lmRecieveDamage);
- for (int i = 0; i < tempColliders.Length && !(tempColliders[i] == null); i++)
- {
- DealWithColliderHit(tempColliders[i]);
- }
- }
- time += Time.deltaTime;
- while (recentlyHitWhen.Count > 0 && time - recentlyHitWhen[0] > cooldownPerObject)
- {
- recentlyHitWhen.RemoveAt(0);
- recentlyHit.RemoveAt(0);
- }
- }
-
- private void DealWithColliderHit(Collider other)
- {
- TaggedObject componentInParent = other.GetComponentInParent<TaggedObject>();
- if ((bool)componentInParent && !recentlyHit.Contains(componentInParent) && componentInParent.Tags.Contains(TagManager.ETag.EnemyOwned))
- {
- componentInParent.Hp.TakeDamage(Weapon.CalculateDamageGeneral(componentInParent, damage, DamageMultiplyer));
- recentlyHit.Add(componentInParent);
- recentlyHitWhen.Add(time);
- }
- }
-}
diff --git a/GameCode/RiverScroller.cs b/GameCode/RiverScroller.cs
deleted file mode 100644
index 65f9f3c..0000000
--- a/GameCode/RiverScroller.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-
-public class RiverScroller : MonoBehaviour
-{
- public Material mat;
-
- public float speed;
-
- public string propertyName;
-
- private float xOffset;
-
- private void Update()
- {
- xOffset += Time.deltaTime * speed;
- mat.SetTextureOffset(propertyName, new Vector2(xOffset, 0f));
- }
-}
diff --git a/GameCode/RotateForwardToRVOVelocity.cs b/GameCode/RotateForwardToRVOVelocity.cs
deleted file mode 100644
index 3bbf35f..0000000
--- a/GameCode/RotateForwardToRVOVelocity.cs
+++ /dev/null
@@ -1,64 +0,0 @@
-using UnityEngine;
-
-public class RotateForwardToRVOVelocity : MonoBehaviour
-{
- public Transform transformToRotate;
-
- public PathfindMovement target;
-
- public AutoAttack attack;
-
- public float regularSmoothTime = 0.1f;
-
- public float attackSmoothTime = 0.05f;
-
- private Vector3 desiredForward;
-
- private Vector3 angularVelocityRef;
-
- private float minSqVelocity = 1.5f;
-
- private bool attackOverride;
-
- private void Start()
- {
- if ((bool)attack)
- {
- attack.onAttackTriggered.AddListener(OnAttack);
- }
- desiredForward = transformToRotate.forward;
- }
-
- private void Update()
- {
- if ((bool)target && target.RVO.velocity.sqrMagnitude > minSqVelocity && !attackOverride)
- {
- desiredForward = target.RVO.velocity;
- desiredForward.y = 0f;
- desiredForward.Normalize();
- }
- if (Vector3.Angle(transformToRotate.forward, desiredForward) > 3f)
- {
- if (attackOverride)
- {
- transformToRotate.forward = Vector3.SmoothDamp(transformToRotate.forward, desiredForward, ref angularVelocityRef, attackSmoothTime);
- }
- else
- {
- transformToRotate.forward = Vector3.SmoothDamp(transformToRotate.forward, desiredForward, ref angularVelocityRef, regularSmoothTime);
- }
- }
- else
- {
- attackOverride = false;
- }
- }
-
- private void OnAttack()
- {
- desiredForward = attack.LastTargetPosition - transformToRotate.position;
- desiredForward.y = 0f;
- desiredForward.Normalize();
- attackOverride = true;
- }
-}
diff --git a/GameCode/SaveLoadManager.cs b/GameCode/SaveLoadManager.cs
deleted file mode 100644
index 5a51b9e..0000000
--- a/GameCode/SaveLoadManager.cs
+++ /dev/null
@@ -1,243 +0,0 @@
-using System.Collections.Generic;
-using System.IO;
-using UnityEngine;
-
-public class SaveLoadManager : MonoBehaviour
-{
- public static SaveLoadManager instance;
-
- [SerializeField]
- private int saveFileVersionNr = 1;
-
- [SerializeField]
- private string saveFileName = "ThroneSave.sav";
-
- private List<string> saveData = new List<string>();
-
- private string[] loadData;
-
- private LevelProgressManager levelProgressManager;
-
- private PerkManager perkManager;
-
- [SerializeField]
- private List<Equippable> allEquippablesID = new List<Equippable>();
-
- private int iln;
-
- private string line;
-
- private string FullSaveFilePath => Path.Combine(Application.persistentDataPath, saveFileName);
-
- private void Awake()
- {
- if ((bool)instance)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- Object.DontDestroyOnLoad(base.gameObject);
- instance = this;
- }
-
- private void Start()
- {
- LoadGame();
- if (DebugController.SaveLoadModeToUse != DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- if (levelProgressManager.GetLevelDataForScene("Neuland(Tutorial)") == null)
- {
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel("Neuland(Tutorial)");
- }
- else if (!levelProgressManager.GetLevelDataForScene("Neuland(Tutorial)").beatenBest)
- {
- SceneTransitionManager.instance.TransitionFromLevelSelectToLevel("Neuland(Tutorial)");
- }
- }
- }
-
- public void SaveGame()
- {
- if (!DebugController.SaveTheGame)
- {
- DebugLogInEditorOnly("Saving is not enabled!");
- return;
- }
- saveData.Clear();
- levelProgressManager = LevelProgressManager.instance;
- perkManager = PerkManager.instance;
- SaveSingle("Save File Version", saveFileVersionNr.ToString());
- SaveSingle("Perk Level", perkManager.level.ToString());
- SaveSingle("Perk XP", perkManager.xp.ToString());
- foreach (KeyValuePair<string, LevelData> sceneNameToLevelDatum in levelProgressManager.SceneNameToLevelData)
- {
- string key = sceneNameToLevelDatum.Key;
- LevelData value = sceneNameToLevelDatum.Value;
- if (value.highscoreBest <= 0 && !value.beatenBest)
- {
- continue;
- }
- SaveSingle("Level", key);
- SaveSingle("QuestsCompleteWhenLastOnMap", value.questsCompleteWhenLastVisitingMap.ToString());
- SaveSingle("Beaten", value.beatenBest ? "1" : "0");
- if (value.beatenBest)
- {
- AchievementManager.LevelBeaten(key);
- }
- SaveSingle("HighscoreV2", value.highscoreBest.ToString());
- SaveList("NetworthV2 / Day", value.dayToDayNetworthBest);
- SaveList("ScoreV2 / Day", value.dayToDayScoreBest);
- foreach (List<Equippable> item in value.levelHasBeenBeatenWith)
- {
- List<string> list = new List<string>();
- foreach (Equippable item2 in item)
- {
- if (!(item2 == null))
- {
- list.Add(item2.name);
- }
- }
- SaveList("Beaten With", list);
- }
- }
- File.WriteAllLines(FullSaveFilePath, saveData);
- DebugLogInEditorOnly("Game Saved to " + FullSaveFilePath);
- }
-
- public void SaveSingle(string _key, string _data)
- {
- saveData.Add(_key);
- saveData.Add(_data);
- saveData.Add("");
- }
-
- public void SaveList<Type>(string _key, List<Type> _data)
- {
- saveData.Add(_key);
- saveData.Add(_data.Count.ToString());
- for (int i = 0; i < _data.Count; i++)
- {
- saveData.Add(_data[i].ToString());
- }
- saveData.Add("");
- }
-
- private void LoadGame()
- {
- levelProgressManager = LevelProgressManager.instance;
- perkManager = PerkManager.instance;
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadEmptySaveFileOnStartup)
- {
- DebugLogInEditorOnly("Loading is not enabled!");
- return;
- }
- if (DebugController.SaveLoadModeToUse == DebugController.SaveLoadMode.LoadMaxedOutSaveFileOnStartup)
- {
- DebugLogInEditorOnly("Loading maxed out save file with everything unlocked!");
- perkManager.level = 10000;
- perkManager.CallAfterLoadToUnlockPerksAndStuff();
- return;
- }
- if (!File.Exists(FullSaveFilePath))
- {
- DebugLogInEditorOnly("No save file was found at " + FullSaveFilePath + " so the load process was canceled.");
- return;
- }
- loadData = File.ReadAllLines(FullSaveFilePath);
- LevelData levelData = null;
- levelProgressManager.SceneNameToLevelData.Clear();
- for (iln = 0; iln < loadData.Length; iln++)
- {
- line = loadData[iln];
- switch (line)
- {
- case "Perk Level":
- perkManager.level = int.Parse(ReadNextLn());
- break;
- case "Perk XP":
- perkManager.xp = int.Parse(ReadNextLn());
- break;
- case "Level":
- levelData = levelProgressManager.GetLevelDataForScene(ReadNextLn());
- break;
- case "QuestsCompleteWhenLastOnMap":
- if (levelData != null)
- {
- levelData.questsCompleteWhenLastVisitingMap = int.Parse(ReadNextLn());
- }
- break;
- case "Beaten":
- if (levelData != null)
- {
- levelData.beatenBest = ReadNextLn() == "1";
- }
- break;
- case "HighscoreV2":
- if (levelData != null)
- {
- levelData.highscoreBest = int.Parse(ReadNextLn());
- }
- break;
- case "NetworthV2 / Day":
- if (levelData != null)
- {
- int num = int.Parse(ReadNextLn());
- levelData.dayToDayNetworthBest.Clear();
- for (int l = 0; l < num; l++)
- {
- levelData.dayToDayNetworthBest.Add(int.Parse(ReadNextLn()));
- }
- }
- break;
- case "ScoreV2 / Day":
- if (levelData != null)
- {
- int num = int.Parse(ReadNextLn());
- levelData.dayToDayScoreBest.Clear();
- for (int k = 0; k < num; k++)
- {
- levelData.dayToDayScoreBest.Add(int.Parse(ReadNextLn()));
- }
- }
- break;
- case "Beaten With":
- {
- if (levelData == null)
- {
- break;
- }
- int num = int.Parse(ReadNextLn());
- List<Equippable> list = new List<Equippable>();
- for (int i = 0; i < num; i++)
- {
- string text = ReadNextLn();
- Equippable item = null;
- for (int j = 0; j < allEquippablesID.Count; j++)
- {
- if (allEquippablesID[j].name == text)
- {
- item = allEquippablesID[j];
- }
- }
- list.Add(item);
- }
- levelData.levelHasBeenBeatenWith.Add(list);
- break;
- }
- }
- }
- perkManager.CallAfterLoadToUnlockPerksAndStuff();
- DebugLogInEditorOnly("Loaded Game from " + FullSaveFilePath);
- }
-
- private string ReadNextLn()
- {
- iln++;
- line = loadData[iln];
- return line;
- }
-
- private void DebugLogInEditorOnly(string _log)
- {
- }
-}
diff --git a/GameCode/ScaleAnimation.cs b/GameCode/ScaleAnimation.cs
deleted file mode 100644
index 4cd8dd7..0000000
--- a/GameCode/ScaleAnimation.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class ScaleAnimation : OneShotAnimationBase
-{
- public AnimationCurve curve;
-
- public float duration = 0.75f;
-
- public float targetScale;
-
- public Transform transformToAnimate;
-
- private float initialScale = 1f;
-
- private void Start()
- {
- initialScale = transformToAnimate.localScale.x;
- }
-
- private IEnumerator Animate()
- {
- transformToAnimate.localScale = Vector3.one * initialScale;
- float timer = 0f;
- while (timer < duration)
- {
- transformToAnimate.localScale = Vector3.one * Mathf.Lerp(initialScale, targetScale, curve.Evaluate(timer / duration));
- timer += Time.deltaTime;
- yield return null;
- }
- transformToAnimate.localScale = Vector3.one * Mathf.Lerp(initialScale, targetScale, curve.Evaluate(timer / duration));
- }
-
- public override void Trigger()
- {
- if (base.gameObject.activeInHierarchy)
- {
- StopAllCoroutines();
- StartCoroutine(Animate());
- }
- }
-}
diff --git a/GameCode/ScalePulse.cs b/GameCode/ScalePulse.cs
deleted file mode 100644
index 16d6934..0000000
--- a/GameCode/ScalePulse.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-
-public class ScalePulse : MonoBehaviour
-{
- public AnimationCurve scaleCurve;
-
- public float scaleIncrease = 0.4f;
-
- public float pulseSpeed = 1f;
-
- private float clock;
-
- private void Update()
- {
- clock += Time.deltaTime * pulseSpeed;
- base.transform.localScale = Vector3.one * (1f + scaleIncrease * scaleCurve.Evaluate(clock));
- }
-}
diff --git a/GameCode/SceneNameToLevelData.cs b/GameCode/SceneNameToLevelData.cs
deleted file mode 100644
index 7b8f84f..0000000
--- a/GameCode/SceneNameToLevelData.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using System;
-
-[Serializable]
-public class SceneNameToLevelData : UnitySerializedDictionary<string, LevelData>
-{
-}
diff --git a/GameCode/SceneTransitionManager.cs b/GameCode/SceneTransitionManager.cs
deleted file mode 100644
index 0142bc4..0000000
--- a/GameCode/SceneTransitionManager.cs
+++ /dev/null
@@ -1,254 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.SceneManagement;
-using UnityEngine.UI;
-
-public class SceneTransitionManager : MonoBehaviour
-{
- public enum SceneState
- {
- MainMenu,
- LevelSelect,
- InGame
- }
-
- public static SceneTransitionManager instance;
-
- public string uiScene = "_UI";
-
- public string mainMenuScene = "_StartMenu";
-
- public string levelSelectScene;
-
- public Image placeholderCloudsTransition;
-
- public TMP_Text loadingText;
-
- public float cloudFadeInTime = 1f;
-
- public float cloudFadeOutTime = 2f;
-
- [HideInInspector]
- public UnityEvent onSceneChange = new UnityEvent();
-
- private SceneState currentSceneState;
-
- private SceneState lastSceneState;
-
- private int ingameScoreFromLastMatch;
-
- private int goldBonusScoreFromLastMatch;
-
- private int mutatorBonusScoreFromLastMatch;
-
- private string comingFromGameplayScene = "";
-
- private int totalScoreFromLastMatch;
-
- private bool totalScoreFromLastMatchIsNewPersonalRecord;
-
- private LevelData levelDataFromLastMatch;
-
- private bool sceneTransitionIsRunning;
-
- private Color cloudsIn;
-
- private Color cloudsOut;
-
- private Coroutine currentTransition;
-
- public SceneState CurrentSceneState => currentSceneState;
-
- public SceneState LastSceneState => lastSceneState;
-
- public int IngameScoreFromLastMatch => ingameScoreFromLastMatch;
-
- public int GoldBonusScoreFromLastMatch => goldBonusScoreFromLastMatch;
-
- public int MutatorBonusScoreFromLastMatch => mutatorBonusScoreFromLastMatch;
-
- public int TotalScoreFromLastMatch => totalScoreFromLastMatch;
-
- public bool TotalScoreFromLastMatchIsNewPersonalRecord => totalScoreFromLastMatchIsNewPersonalRecord;
-
- public string ComingFromGameplayScene => comingFromGameplayScene;
-
- public LevelData LevelDataFromLastMatch => levelDataFromLastMatch;
-
- public bool SceneTransitionIsRunning => sceneTransitionIsRunning;
-
- private void Awake()
- {
- if ((bool)instance)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.transform.root.gameObject);
- if (!SceneManager.GetSceneByName(uiScene).IsValid())
- {
- SceneManager.LoadScene(uiScene, LoadSceneMode.Additive);
- }
- cloudsIn = placeholderCloudsTransition.color;
- cloudsOut = cloudsIn;
- cloudsOut.a = 0f;
- loadingText.alpha = 0f;
- }
-
- private void Start()
- {
- }
-
- public void TransitionFromLevelSelectToLevel(string _levelname)
- {
- if (currentSceneState != SceneState.LevelSelect)
- {
- Debug.LogWarning("You should only transition to a specific level from the level selection scene.");
- }
- else
- {
- TransitionToScene(_levelname);
- }
- }
-
- public void TransitionFromNullToLevel(string _levelname)
- {
- TransitionToScene(_levelname);
- }
-
- public void RestartCurrentLevel()
- {
- TransitionToScene(SceneManager.GetActiveScene().name);
- }
-
- public void TransitionFromGameplayToEndScreen(int _score, int _goldBonusScore, int _mutatorBonusScore)
- {
- comingFromGameplayScene = SceneManager.GetActiveScene().name;
- LevelData levelData = (levelDataFromLastMatch = LevelProgressManager.instance.GetLevelDataForScene(comingFromGameplayScene));
- if (currentSceneState != SceneState.InGame)
- {
- Debug.LogWarning("You should only transition to the end screen from a gameply level.");
- return;
- }
- ingameScoreFromLastMatch = _score;
- goldBonusScoreFromLastMatch = _goldBonusScore;
- mutatorBonusScoreFromLastMatch = _mutatorBonusScore;
- levelData.highscore = _score + _goldBonusScore + _mutatorBonusScore;
- totalScoreFromLastMatch = levelData.highscore;
- totalScoreFromLastMatchIsNewPersonalRecord = totalScoreFromLastMatch > levelData.highscoreBest;
- UIFrameManager.TriggerEndOfMatch();
- }
-
- public void TransitionFromEndScreenToLevelSelect()
- {
- TransitionToScene(levelSelectScene);
- }
-
- private void TransitionToScene(string _scenename)
- {
- if (!sceneTransitionIsRunning)
- {
- lastSceneState = currentSceneState;
- if (_scenename == levelSelectScene)
- {
- currentSceneState = SceneState.LevelSelect;
- }
- else if (_scenename == mainMenuScene)
- {
- currentSceneState = SceneState.MainMenu;
- }
- else
- {
- currentSceneState = SceneState.InGame;
- }
- onSceneChange.Invoke();
- StartCoroutine(SceneTransitionAnimation(_scenename));
- }
- }
-
- private float FadeFormula(float f)
- {
- return Mathf.Pow(f, 4f);
- }
-
- private IEnumerator SceneTransitionAnimation(string _scenename)
- {
- sceneTransitionIsRunning = true;
- int sceneCount = SceneManager.sceneCount;
- placeholderCloudsTransition.gameObject.SetActive(value: true);
- float clock2 = 0f;
- while (clock2 <= cloudFadeInTime)
- {
- float num = Mathf.Clamp(Time.unscaledDeltaTime, 0f, 0.1f);
- clock2 += num;
- placeholderCloudsTransition.color = Color.Lerp(cloudsOut, cloudsIn, 1f - FadeFormula(1f - clock2 / cloudFadeInTime));
- loadingText.alpha = 1f - FadeFormula(1f - clock2 / cloudFadeInTime);
- yield return null;
- }
- placeholderCloudsTransition.color = cloudsIn;
- loadingText.alpha = 1f;
- List<AsyncOperation> loadOperations = new List<AsyncOperation>();
- if (sceneCount > 0)
- {
- for (int num2 = sceneCount - 1; num2 >= 0; num2--)
- {
- Scene sceneAt = SceneManager.GetSceneAt(num2);
- if (sceneAt.name != uiScene)
- {
- loadOperations.Add(SceneManager.UnloadSceneAsync(sceneAt));
- }
- }
- }
- loadOperations.Add(SceneManager.LoadSceneAsync(_scenename, LoadSceneMode.Additive));
- while (loadOperations.Count > 0)
- {
- for (int num3 = loadOperations.Count - 1; num3 >= 0; num3--)
- {
- if (loadOperations[num3].isDone)
- {
- loadOperations.RemoveAt(num3);
- }
- }
- yield return null;
- }
- SceneManager.SetActiveScene(SceneManager.GetSceneByName(_scenename));
- UIFrameManager.instance.CloseAllFrames();
- if (_scenename == mainMenuScene)
- {
- UIFrameManager.instance.SwitchToTitleFrame();
- }
- clock2 = 0f;
- while (clock2 <= cloudFadeOutTime)
- {
- float num4 = Mathf.Clamp(Time.unscaledDeltaTime, 0f, 0.1f);
- clock2 += num4;
- placeholderCloudsTransition.color = Color.Lerp(cloudsIn, cloudsOut, FadeFormula(clock2 / cloudFadeOutTime));
- loadingText.alpha = 1f - FadeFormula(1f - clock2 / cloudFadeInTime);
- yield return null;
- }
- placeholderCloudsTransition.color = cloudsOut;
- loadingText.alpha = 0f;
- placeholderCloudsTransition.gameObject.SetActive(value: false);
- sceneTransitionIsRunning = false;
- }
-
- public void TransitionFromNullToLevelSelect()
- {
- TransitionToScene(levelSelectScene);
- }
-
- public void TransitionFromLevelToLevelSelect()
- {
- comingFromGameplayScene = SceneManager.GetActiveScene().name;
- TransitionToScene(levelSelectScene);
- }
-
- public void TransitionToMainMenu()
- {
- TransitionToScene(mainMenuScene);
- }
-}
diff --git a/GameCode/ScoreManager.cs b/GameCode/ScoreManager.cs
deleted file mode 100644
index daccfb5..0000000
--- a/GameCode/ScoreManager.cs
+++ /dev/null
@@ -1,150 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class ScoreManager : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- private static ScoreManager instance;
-
- private EnemySpawner enemySpawner;
-
- [Min(0f)]
- public int baseScorePerNight = 100;
-
- [Min(0f)]
- public int protectionScorePerNight = 200;
-
- [Min(0f)]
- public int timeScorePerNight = 200;
-
- [Min(0f)]
- public float timebonusMultiplier = 1f;
-
- [Min(0f)]
- public float timeBonusMinTime = 10f;
-
- [Min(0f)]
- public float timeBonusMaxTime = 120f;
-
- [Min(0f)]
- public float protectionScoreMultiplier = 1f;
-
- [Range(1f, 2f)]
- public float scoreExponent = 2f;
-
- private int currentScore;
-
- private List<TagManager.ETag> buildingTags = new List<TagManager.ETag>(new TagManager.ETag[2]
- {
- TagManager.ETag.Building,
- TagManager.ETag.PlayerOwned
- });
-
- [HideInInspector]
- public UnityEvent<int, int, float, int> OnNightScoreAdd = new UnityEvent<int, int, float, int>();
-
- private bool tauntTheTiger;
-
- private bool tauntTheTurtle;
-
- private bool tauntTheFalcon;
-
- private bool tauntTheRat;
-
- private float scoreMultiplyerFromPerks;
-
- public float victoryGoldBonusMultiplyer = 10f;
-
- public static ScoreManager Instance => instance;
-
- public int CurrentScore => currentScore;
-
- public int VictoryGoldBonus => Mathf.CeilToInt((float)PlayerInteraction.instance.TrueBalance * victoryGoldBonusMultiplyer);
-
- public int VictoryMutatorBonus
- {
- get
- {
- float num = 1f;
- foreach (Equippable item in PerkManager.instance.CurrentlyEquipped)
- {
- if (item.GetType() == typeof(EquippableMutation))
- {
- num *= ((EquippableMutation)item).scoreMultiplyerOnWin;
- }
- }
- return Mathf.CeilToInt((float)(currentScore + VictoryGoldBonus) * (num - 1f));
- }
- }
-
- public int MaxScorePerNight => Mathf.RoundToInt((float)(baseScorePerNight + protectionScorePerNight + timeScorePerNight) * scoreMultiplyerFromPerks);
-
- private void Awake()
- {
- if (instance != null)
- {
- Debug.LogWarning("More than one Scoremanger in Scene. Old Scoremanager destroyed.");
- Object.Destroy(instance);
- }
- instance = this;
- }
-
- private void Start()
- {
- enemySpawner = EnemySpawner.instance;
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- tauntTheTiger = PerkManager.IsEquipped(PerkManager.instance.tigerGodPerk);
- tauntTheTurtle = PerkManager.IsEquipped(PerkManager.instance.turtleGodPerk);
- tauntTheFalcon = PerkManager.IsEquipped(PerkManager.instance.falconGodPerk);
- tauntTheRat = PerkManager.IsEquipped(PerkManager.instance.ratGodPerk);
- scoreMultiplyerFromPerks = 1f;
- }
-
- public void CalculateEndOfNightScore()
- {
- int num = Mathf.RoundToInt((float)baseScorePerNight * scoreMultiplyerFromPerks);
- int num2 = num;
- float currentNightLength = DayNightCycle.Instance.CurrentNightLength;
- float lastSpawnPeriodDuration = enemySpawner.LastSpawnPeriodDuration;
- int num3 = Mathf.RoundToInt(Mathf.Pow(Mathf.InverseLerp(timeBonusMaxTime + lastSpawnPeriodDuration, timeBonusMinTime + lastSpawnPeriodDuration, currentNightLength), scoreExponent) * (float)timeScorePerNight * scoreMultiplyerFromPerks);
- num2 += num3;
- List<TaggedObject> list = new List<TaggedObject>();
- TagManager.instance.FindAllTaggedObjectsWithTags(list, buildingTags, null);
- int num4 = 0;
- foreach (TaggedObject item in list)
- {
- BuildingInteractor componentInChildren = item.transform.parent.GetComponentInChildren<BuildingInteractor>(includeInactive: true);
- if ((bool)componentInChildren && componentInChildren.KnockedOutTonight)
- {
- num4++;
- }
- }
- float f = 1f - Mathf.InverseLerp(0f, list.Count, num4);
- f = Mathf.Pow(f, scoreExponent);
- int num5 = Mathf.RoundToInt((float)protectionScorePerNight * f * scoreMultiplyerFromPerks);
- num2 += num5;
- currentScore += num2;
- OnNightScoreAdd.Invoke(num, num3, f, num5);
- LevelData levelDataForActiveScene = LevelProgressManager.instance.GetLevelDataForActiveScene();
- levelDataForActiveScene.highscore = currentScore;
- levelDataForActiveScene.dayToDayScore.Add(currentScore);
- }
-
- public void OnDusk()
- {
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- CalculateEndOfNightScore();
- }
-
- public void AddDebugPoints(int amount)
- {
- currentScore += amount;
- }
-}
diff --git a/GameCode/ScoreTag.cs b/GameCode/ScoreTag.cs
deleted file mode 100644
index 1d78442..0000000
--- a/GameCode/ScoreTag.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class ScoreTag : MonoBehaviour
-{
- public GameObject highlight;
-
- public TMP_Text rank;
-
- public TMP_Text username;
-
- public TMP_Text score;
-
- public void SetNameAndScore(string _name, int _score, int _rank, bool isPlayer)
- {
- highlight.SetActive(isPlayer);
- rank.text = _rank + ".";
- username.text = _name;
- score.text = _score.ToString();
- }
-}
diff --git a/GameCode/ScreenMarker.cs b/GameCode/ScreenMarker.cs
deleted file mode 100644
index 488c22b..0000000
--- a/GameCode/ScreenMarker.cs
+++ /dev/null
@@ -1,197 +0,0 @@
-using MPUIKIT;
-using TMPro;
-using UnityEngine;
-
-public class ScreenMarker : MonoBehaviour
-{
- [Header("Content")]
- [SerializeField]
- private Sprite showSprite;
-
- [SerializeField]
- private int showNumber;
-
- [Header("Setup")]
- [SerializeField]
- private GameObject screenMarkerPrefab;
-
- private GameObject myUiMarkerGameObject;
-
- private EnemyScreenMarkerUIHelper uiMarkerData;
-
- private RectTransform screenMarkerUI;
-
- private Camera cam;
-
- private MPImageBasic enemyIcon;
-
- private TMP_Text enemyNumber;
-
- private float myRandomVal;
-
- private Vector2 unclampedScreenPos;
-
- private Vector2 clampedScreenPos;
-
- public bool rotateTowardsTargetWhenOffscreen;
-
- public bool showWhenOnScreen = true;
-
- public bool showWhenOffScreen = true;
-
- public Rect checkOnScreenRect;
-
- private bool onScreen;
-
- public float MyRandomVal => myRandomVal;
-
- public Vector2 UnclampedScreenPos
- {
- get
- {
- return unclampedScreenPos;
- }
- set
- {
- unclampedScreenPos = value;
- }
- }
-
- public Vector2 ClampedScreenPos
- {
- get
- {
- return clampedScreenPos;
- }
- set
- {
- clampedScreenPos = value;
- }
- }
-
- public bool OnScreen
- {
- get
- {
- return onScreen;
- }
- set
- {
- onScreen = value;
- }
- }
-
- public Sprite Sprite => showSprite;
-
- public int Number => showNumber;
-
- public Vector2 Position
- {
- get
- {
- return screenMarkerUI.localPosition;
- }
- set
- {
- screenMarkerUI.localPosition = value;
- }
- }
-
- public float ImageRotation
- {
- get
- {
- return enemyIcon.transform.rotation.z;
- }
- set
- {
- enemyIcon.transform.rotation = Quaternion.Euler(enemyIcon.transform.rotation.x, enemyIcon.transform.rotation.y, value);
- }
- }
-
- public Rect Rect => screenMarkerUI.rect;
-
- private void Start()
- {
- cam = Camera.main;
- myUiMarkerGameObject = Object.Instantiate(screenMarkerPrefab, UIFrameManager.instance.OnScreenMarkerContainer);
- uiMarkerData = myUiMarkerGameObject.GetComponent<EnemyScreenMarkerUIHelper>();
- enemyIcon = uiMarkerData.enemyIcon;
- enemyNumber = uiMarkerData.enemyNumber;
- screenMarkerUI = (RectTransform)myUiMarkerGameObject.transform;
- SetSprite(showSprite);
- SetNumber(showNumber);
- ScreenMarkerManager.instance.RegisterScreenMarker(this);
- myRandomVal = Random.value;
- SceneTransitionManager.instance.onSceneChange.AddListener(KillOnSceneChange);
- }
-
- public void SetSprite(Sprite _sprite)
- {
- if (!(_sprite == null))
- {
- showSprite = _sprite;
- if ((bool)enemyIcon)
- {
- enemyIcon.sprite = _sprite;
- }
- }
- }
-
- public void Show(bool _show)
- {
- if (myUiMarkerGameObject.activeSelf != _show)
- {
- myUiMarkerGameObject.SetActive(_show);
- }
- }
-
- public void SetNumber(int _number)
- {
- showNumber = _number;
- if ((bool)enemyNumber)
- {
- enemyNumber.text = showNumber.ToString();
- enemyNumber.enabled = showNumber > 0;
- }
- }
-
- private void OnEnable()
- {
- if ((bool)myUiMarkerGameObject)
- {
- myUiMarkerGameObject.SetActive(value: true);
- }
- if ((bool)ScreenMarkerManager.instance)
- {
- ScreenMarkerManager.instance.RegisterScreenMarker(this);
- }
- }
-
- private void OnDisable()
- {
- if ((bool)myUiMarkerGameObject)
- {
- myUiMarkerGameObject.SetActive(value: false);
- }
- if ((bool)ScreenMarkerManager.instance)
- {
- ScreenMarkerManager.instance.UnregisterScreenMarker(this);
- }
- }
-
- private void OnDestroy()
- {
- if ((bool)myUiMarkerGameObject)
- {
- Object.Destroy(myUiMarkerGameObject);
- }
- ScreenMarkerManager.instance.UnregisterScreenMarker(this);
- }
-
- private void KillOnSceneChange()
- {
- Object.Destroy(myUiMarkerGameObject);
- Object.Destroy(base.gameObject);
- }
-}
diff --git a/GameCode/ScreenMarkerCanvasHelper.cs b/GameCode/ScreenMarkerCanvasHelper.cs
deleted file mode 100644
index 5f047c7..0000000
--- a/GameCode/ScreenMarkerCanvasHelper.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class ScreenMarkerCanvasHelper : MonoBehaviour
-{
- public static ScreenMarkerCanvasHelper instance;
-
- [SerializeField]
- private RectTransform ownRT;
-
- public float Height => ownRT.sizeDelta.y;
-
- private void Awake()
- {
- if (instance == null)
- {
- instance = this;
- }
- }
-}
diff --git a/GameCode/ScreenMarkerIcon.cs b/GameCode/ScreenMarkerIcon.cs
deleted file mode 100644
index 82f89af..0000000
--- a/GameCode/ScreenMarkerIcon.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-public class ScreenMarkerIcon : MonoBehaviour
-{
- public Sprite sprite;
-}
diff --git a/GameCode/ScreenMarkerManager.cs b/GameCode/ScreenMarkerManager.cs
deleted file mode 100644
index 155aae9..0000000
--- a/GameCode/ScreenMarkerManager.cs
+++ /dev/null
@@ -1,284 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class ScreenMarkerManager : MonoBehaviour
-{
- public enum MarkerMode
- {
- Direction,
- ClampedPos
- }
-
- private class ComparePositionX : IComparer<ScreenMarker>
- {
- public int Compare(ScreenMarker a, ScreenMarker b)
- {
- if (!object.Equals(a.UnclampedScreenPos.x, b.UnclampedScreenPos.x))
- {
- return Comparer<float>.Default.Compare(a.UnclampedScreenPos.x, b.UnclampedScreenPos.x);
- }
- return Comparer<float>.Default.Compare(a.MyRandomVal - (float)a.Number, b.MyRandomVal - (float)b.Number);
- }
- }
-
- private class ComparePositionY : IComparer<ScreenMarker>
- {
- public int Compare(ScreenMarker a, ScreenMarker b)
- {
- if (!object.Equals(a.UnclampedScreenPos.y, b.UnclampedScreenPos.y))
- {
- return Comparer<float>.Default.Compare(a.UnclampedScreenPos.y, b.UnclampedScreenPos.y);
- }
- return Comparer<float>.Default.Compare(a.MyRandomVal - (float)a.Number, b.MyRandomVal - (float)b.Number);
- }
- }
-
- public static ScreenMarkerManager instance;
-
- private List<ScreenMarker> screenMarkersActive = new List<ScreenMarker>();
-
- private List<ScreenMarker> screenMarkersToShow = new List<ScreenMarker>();
-
- private Dictionary<ScreenMarker, int> screenMarkerInGroup = new Dictionary<ScreenMarker, int>();
-
- private List<List<ScreenMarker>> screenMarkerGroups = new List<List<ScreenMarker>>();
-
- private Camera cam;
-
- private float ratio;
-
- private float clampY;
-
- private float clampX;
-
- private int frame;
-
- [SerializeField]
- private MarkerMode markerMode;
-
- private float FIXED_CANVAS_HEIGHT => ScreenMarkerCanvasHelper.instance.Height;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- cam = Camera.main;
- UpdateCam();
- }
-
- private void UpdateCam()
- {
- ratio = cam.pixelRect.width / cam.pixelRect.height;
- clampY = FIXED_CANVAS_HEIGHT / 2f;
- clampX = FIXED_CANVAS_HEIGHT / 2f * ratio;
- }
-
- public void RegisterScreenMarker(ScreenMarker _sm)
- {
- if (!screenMarkersActive.Contains(_sm))
- {
- screenMarkersActive.Add(_sm);
- }
- }
-
- public void UnregisterScreenMarker(ScreenMarker _sm)
- {
- if (screenMarkersActive.Contains(_sm))
- {
- screenMarkersActive.Remove(_sm);
- }
- }
-
- private void Update()
- {
- frame++;
- if (frame < 2)
- {
- return;
- }
- UpdateCam();
- screenMarkersToShow.Clear();
- for (int num = screenMarkersActive.Count - 1; num >= 0; num--)
- {
- UpdateMarkerPosition(screenMarkersActive[num]);
- }
- for (int i = 0; i < screenMarkerGroups.Count; i++)
- {
- screenMarkerGroups[i].Clear();
- }
- screenMarkerInGroup.Clear();
- while (screenMarkerGroups.Count < screenMarkersToShow.Count)
- {
- screenMarkerGroups.Add(new List<ScreenMarker>());
- }
- for (int j = 0; j < screenMarkersToShow.Count; j++)
- {
- screenMarkerGroups[j].Add(screenMarkersToShow[j]);
- screenMarkerInGroup.Add(screenMarkersToShow[j], j);
- }
- bool flag = true;
- int num2 = 30;
- while (flag && num2 > 0)
- {
- num2--;
- bool flag2 = false;
- for (int k = 0; k < screenMarkersToShow.Count; k++)
- {
- ScreenMarker screenMarker = screenMarkersToShow[k];
- for (int l = k + 1; l < screenMarkersToShow.Count; l++)
- {
- ScreenMarker screenMarker2 = screenMarkersToShow[l];
- if (!CheckOverlap(screenMarker, screenMarker2))
- {
- continue;
- }
- int num3 = screenMarkerInGroup[screenMarker];
- int num4 = screenMarkerInGroup[screenMarker2];
- if (num3 != num4)
- {
- flag2 = true;
- for (int m = 0; m < screenMarkerGroups[num4].Count; m++)
- {
- ScreenMarker screenMarker3 = screenMarkerGroups[num4][m];
- screenMarkerGroups[num4].Remove(screenMarker3);
- screenMarkerGroups[num3].Add(screenMarker3);
- screenMarkerInGroup[screenMarker3] = num3;
- }
- }
- }
- }
- flag = flag2;
- if (flag2)
- {
- for (int n = 0; n < screenMarkerGroups.Count; n++)
- {
- FormatGroup(screenMarkerGroups[n]);
- }
- }
- }
- for (int num5 = 0; num5 < screenMarkersToShow.Count; num5++)
- {
- ScreenMarker screenMarker4 = screenMarkersToShow[num5];
- if (screenMarker4.rotateTowardsTargetWhenOffscreen)
- {
- if (screenMarker4.OnScreen)
- {
- screenMarker4.ImageRotation = 0f;
- }
- else
- {
- screenMarker4.ImageRotation = Vector2.SignedAngle(Vector2.down, screenMarker4.UnclampedScreenPos - screenMarker4.Position);
- }
- }
- }
- }
-
- private bool CheckOverlap(ScreenMarker _sm1, ScreenMarker _sm2)
- {
- if (_sm1.Rect != _sm2.Rect)
- {
- return false;
- }
- if (_sm1.UnclampedScreenPos == _sm2.UnclampedScreenPos)
- {
- return true;
- }
- Rect rect = _sm1.Rect;
- Rect rect2 = _sm2.Rect;
- if (Mathf.Abs(_sm1.Position.x - _sm2.Position.x) > Mathf.Abs(rect.width + rect2.width) / 2f)
- {
- return false;
- }
- if (Mathf.Abs(_sm1.Position.y - _sm2.Position.y) > Mathf.Abs(rect.height + rect2.height) / 2f)
- {
- return false;
- }
- return true;
- }
-
- private void FormatGroup(List<ScreenMarker> _group)
- {
- if (_group.Count <= 0)
- {
- return;
- }
- Vector2 zero = Vector2.zero;
- float num = 0f;
- float num2 = 0f;
- float num3 = 0f;
- float num4 = 0f;
- for (int i = 0; i < _group.Count; i++)
- {
- zero += _group[i].ClampedScreenPos;
- num3 += _group[i].Rect.width;
- num4 += _group[i].Rect.height;
- if (i > 0)
- {
- num -= _group[i].Rect.width / 2f;
- num2 -= _group[i].Rect.height / 2f;
- }
- }
- zero /= (float)_group.Count;
- if (Mathf.Abs(zero.x / clampX) < Mathf.Abs(zero.y / clampY))
- {
- zero = new Vector2(Mathf.Clamp(zero.x, 0f - clampX + num3 / 2f, clampX - num3 / 2f), zero.y);
- _group.Sort(new ComparePositionX());
- for (int j = 0; j < _group.Count; j++)
- {
- _group[j].Position = zero + Vector2.right * (_group[j].Rect.width * (float)j + num);
- }
- }
- else
- {
- zero = new Vector2(zero.x, Mathf.Clamp(zero.y, 0f - clampY + num4 / 2f, clampY - num4 / 2f));
- _group.Sort(new ComparePositionY());
- for (int k = 0; k < _group.Count; k++)
- {
- _group[k].Position = zero + Vector2.down * (_group[k].Rect.height * (float)k + num2);
- }
- }
- }
-
- public void UpdateMarkerPosition(ScreenMarker _sm)
- {
- float num = cam.pixelRect.height / FIXED_CANVAS_HEIGHT;
- Vector3 vector = cam.WorldToScreenPoint(_sm.transform.position);
- Vector2 vector3 = (_sm.UnclampedScreenPos = new Vector2(vector.x - cam.pixelRect.width * 0.5f, vector.y - cam.pixelRect.height * 0.5f) / num);
- bool flag = true;
- if (Mathf.Abs(vector3.y) > clampY - _sm.checkOnScreenRect.height / 2f)
- {
- flag = false;
- }
- else if (Mathf.Abs(vector3.x) > clampX - _sm.checkOnScreenRect.width / 2f)
- {
- flag = false;
- }
- _sm.OnScreen = flag;
- if ((flag && _sm.showWhenOnScreen) || (!flag && _sm.showWhenOffScreen))
- {
- screenMarkersToShow.Add(_sm);
- _sm.Show(_show: true);
- if (markerMode == MarkerMode.Direction)
- {
- float num2 = (clampX - _sm.Rect.width / 2f) / Mathf.Abs(vector3.x);
- float num3 = (clampY - _sm.Rect.height / 2f) / Mathf.Abs(vector3.y);
- float num4 = Mathf.Min(num2, num3, 1f);
- vector3 = new Vector2(vector3.x, vector3.y) * num4;
- }
- else
- {
- Rect rect = _sm.Rect;
- vector3 = new Vector2(Mathf.Clamp(vector3.x, 0f - clampX + rect.width / 2f, clampX - rect.width / 2f), Mathf.Clamp(vector3.y, 0f - clampY + rect.height / 2f, clampY - rect.height / 2f));
- }
- _sm.Position = vector3;
- _sm.ClampedScreenPos = vector3;
- }
- else
- {
- _sm.Show(_show: false);
- }
- }
-}
diff --git a/GameCode/SelfDestructWhenInRangeOf.cs b/GameCode/SelfDestructWhenInRangeOf.cs
deleted file mode 100644
index 8ab0e29..0000000
--- a/GameCode/SelfDestructWhenInRangeOf.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using UnityEngine;
-
-public class SelfDestructWhenInRangeOf : MonoBehaviour
-{
- [SerializeField]
- private TargetPriority selfDestructIfInRangeOf;
-
- [SerializeField]
- private float checkInterval = 0.5f;
-
- private float timeTillNextCheck;
-
- private Hp hp;
-
- private void Start()
- {
- hp = GetComponent<Hp>();
- timeTillNextCheck = checkInterval;
- }
-
- private void Update()
- {
- timeTillNextCheck -= Time.deltaTime;
- if (timeTillNextCheck <= 0f)
- {
- timeTillNextCheck = checkInterval;
- if (selfDestructIfInRangeOf.FindClosestTaggedObject(base.transform.position) != null && (bool)hp)
- {
- hp.TakeDamage(1E+09f);
- }
- }
- }
-}
diff --git a/GameCode/SetStateWhenMacOSX.cs b/GameCode/SetStateWhenMacOSX.cs
deleted file mode 100644
index 6db5d60..0000000
--- a/GameCode/SetStateWhenMacOSX.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using UnityEngine;
-
-public class SetStateWhenMacOSX : MonoBehaviour
-{
- public bool activeOnMacOSX;
-
- public bool activeElsewhere;
-
- private void Awake()
- {
- base.gameObject.SetActive(activeElsewhere);
- }
-}
diff --git a/GameCode/SetWidthToTarget.cs b/GameCode/SetWidthToTarget.cs
deleted file mode 100644
index fa5c6b6..0000000
--- a/GameCode/SetWidthToTarget.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using UnityEngine;
-
-public class SetWidthToTarget : MonoBehaviour
-{
- public RectTransform target;
-
- public float padding;
-
- public float minWidth = 800f;
-
- private RectTransform rt;
-
- private void Awake()
- {
- rt = GetComponent<RectTransform>();
- if (rt.sizeDelta.x < minWidth)
- {
- rt.sizeDelta = new Vector2(minWidth, rt.sizeDelta.y);
- }
- }
-
- private void Update()
- {
- if (target.sizeDelta.x + padding * 2f > minWidth && !Mathf.Approximately(rt.sizeDelta.x - padding * 2f, target.sizeDelta.x))
- {
- rt.sizeDelta = new Vector2(target.sizeDelta.x + padding * 2f, rt.sizeDelta.y);
- }
- }
-}
diff --git a/GameCode/SettingsAntiAliasing.cs b/GameCode/SettingsAntiAliasing.cs
deleted file mode 100644
index e2a19a6..0000000
--- a/GameCode/SettingsAntiAliasing.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class SettingsAntiAliasing : MonoBehaviour
-{
- public EnumSelector selector;
-
- private void Start()
- {
- selector.onChange.AddListener(OnChange);
- }
-
- private void OnEnable()
- {
- selector.options.Clear();
- selector.options.AddRange(new string[4] { "Disabled", "2x", "4x", "8x" });
- if ((bool)SettingsManager.Instance)
- {
- selector.SetIndex(SettingsManager.AALevelToInt(SettingsManager.Instance.AntiAliasing));
- }
- }
-
- private void OnChange()
- {
- SettingsManager.Instance.SetAntiAliasing(SettingsManager.IntToAALevel(selector.Index));
- }
-}
diff --git a/GameCode/SettingsAudioVolume.cs b/GameCode/SettingsAudioVolume.cs
deleted file mode 100644
index cadeddb..0000000
--- a/GameCode/SettingsAudioVolume.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class SettingsAudioVolume : MonoBehaviour
-{
- public TFUISlider target;
-
- public SettingsManager.MixerChannel channel;
-
- private void OnEnable()
- {
- if (SettingsManager.Instance != null)
- {
- target.SetValue(SettingsManager.Instance.GetAudioVolume(channel));
- }
- }
-
- private void Start()
- {
- target.onChange.AddListener(OnChange);
- }
-
- private void OnChange()
- {
- SettingsManager.Instance.SetAudioValue(target.value, channel);
- }
-}
diff --git a/GameCode/SettingsFullscreen.cs b/GameCode/SettingsFullscreen.cs
deleted file mode 100644
index 4d6ba9f..0000000
--- a/GameCode/SettingsFullscreen.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class SettingsFullscreen : MonoBehaviour
-{
- public Checkbox checkbox;
-
- public void OnApply()
- {
- SettingsManager.Instance.SetFullscreen(checkbox.state);
- }
-
- private void OnEnable()
- {
- if ((bool)SettingsManager.Instance)
- {
- checkbox.SetState(SettingsManager.Instance.Fullscreen);
- }
- }
-}
diff --git a/GameCode/SettingsLanguage.cs b/GameCode/SettingsLanguage.cs
deleted file mode 100644
index 57173ee..0000000
--- a/GameCode/SettingsLanguage.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using I2.Loc;
-using UnityEngine;
-
-public class SettingsLanguage : MonoBehaviour
-{
- public EnumSelector selector;
-
- private void Start()
- {
- selector.onChange.AddListener(OnChange);
- }
-
- private void OnEnable()
- {
- selector.options.Clear();
- selector.options.AddRange(LocalizationManager.GetAllLanguages());
- string currentLanguage = LocalizationManager.CurrentLanguage;
- for (int i = 0; i < selector.options.Count; i++)
- {
- if (selector.options[i] == currentLanguage)
- {
- selector.SetIndex(i);
- break;
- }
- }
- }
-
- private void OnChange()
- {
- LocalizationManager.CurrentLanguage = selector.options[selector.Index];
- }
-}
diff --git a/GameCode/SettingsLanguageReset.cs b/GameCode/SettingsLanguageReset.cs
deleted file mode 100644
index 776d9be..0000000
--- a/GameCode/SettingsLanguageReset.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using I2.Loc;
-using UnityEngine;
-
-public class SettingsLanguageReset : MonoBehaviour
-{
- public GameObject objToRefresh;
-
- public void ResetLanguage()
- {
- LocalizationManager.CurrentLanguage = LocalizationManager.GetCurrentDeviceLanguage();
- objToRefresh.SetActive(value: false);
- objToRefresh.SetActive(value: true);
- }
-}
diff --git a/GameCode/SettingsManager.cs b/GameCode/SettingsManager.cs
deleted file mode 100644
index 287a082..0000000
--- a/GameCode/SettingsManager.cs
+++ /dev/null
@@ -1,370 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Audio;
-using UnityEngine.Events;
-using UnityEngine.Rendering.Universal;
-
-public class SettingsManager : MonoBehaviour
-{
- public enum MixerChannel
- {
- Master,
- Music,
- SFX,
- Environment
- }
-
- private static SettingsManager instance;
-
- public UniversalRenderPipelineAsset renderAsset;
-
- public AudioMixer mixer;
-
- [HideInInspector]
- public UnityEvent onPPSettingsChange = new UnityEvent();
-
- private bool fullscreen = true;
-
- private Resolution currentResolution;
-
- private bool postProcessing = true;
-
- private MsaaQuality antiAliasing = MsaaQuality._4x;
-
- private float renderscale = 1f;
-
- private float volumeMaster;
-
- private float volumeSFX;
-
- private float volumeEnvironment;
-
- private float volumeMusic;
-
- private bool resetUnitFormationEveryMorning;
-
- private bool useLargeInGameUI;
-
- private string VIDEO_INITIALIZED = "Video_Initialized";
-
- private string VIDEO_RESOLUTION_WIDTH = "Video_ResWidth";
-
- private string VIDEO_RESOLUTION_HEIGHT = "Video_ResHeight";
-
- private string VIDEO_POSTPROCESSING = "Video_PostProcessing";
-
- private string VIDEO_FULLSCREEN = "Video_Fullscreen";
-
- private string VIDEO_ANTIALIASING = "Video_AntiAliasing";
-
- private string VIDEO_RENDERSCALE = "Video_Renderscale";
-
- private string AUDIO_INITIALIZED = "Audio_Initialized_1.1";
-
- private string AUDIO_MASTER = "Audio_Master";
-
- private string AUDIO_MUSIC = "Audio_Music";
-
- private string AUDIO_SFX = "Audio_SFX";
-
- private string AUDIO_ENVIRONMENT = "Audio_Environment";
-
- private string MIXER_MASTER = "MasterVolume";
-
- private string MIXER_MUSIC = "SettingsMusicVolume";
-
- private string MIXER_SFX = "SettingsSFXVolume";
-
- private string MIXER_ENVIRONMENT = "SettingsEnvironmentVolume";
-
- private string GAMEPLAY_INITIALIZED = "Gameplay_Initialized_1.1";
-
- private string GAMEPLAY_RESET_UNIS_EVERY_MORNING = "Gameplay_ResetUnitFormationEveryMorning";
-
- private string GAMEPLAY_USE_LARGE_UI = "Gameplay_UseLargeInGameUI";
-
- public static SettingsManager Instance => instance;
-
- public bool Fullscreen => fullscreen;
-
- public Resolution CurrentResolution => currentResolution;
-
- public bool PostProcessing => postProcessing;
-
- public MsaaQuality AntiAliasing => antiAliasing;
-
- public float Renderscale => renderscale;
-
- public float VolumeMaster => volumeMaster;
-
- public float VolumeSFX => volumeSFX;
-
- public float VolumeEnvironment => volumeEnvironment;
-
- public float VolumeMusic => volumeMusic;
-
- public bool ResetUnitFormationEveryMorning => resetUnitFormationEveryMorning;
-
- public bool UseLargeInGameUI => useLargeInGameUI;
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- }
- else
- {
- instance = this;
- }
- }
-
- private void Start()
- {
- LoadVideoSettingsFromPlayerPrefs();
- LoadAudioSettingsFromPlayerPrefs();
- LoadGameplaySettingsFromPlayerPrefs();
- }
-
- public void SetResolution(Resolution newRes)
- {
- List<Resolution> list = new List<Resolution>(Screen.resolutions);
- bool flag = false;
- foreach (Resolution item in list)
- {
- if (newRes.CompareResolutions(item))
- {
- flag = true;
- break;
- }
- }
- if (!flag)
- {
- newRes = Screen.currentResolution;
- }
- currentResolution = newRes;
- FullScreenMode fullscreenMode = FullScreenMode.FullScreenWindow;
- if (!fullscreen)
- {
- fullscreenMode = FullScreenMode.Windowed;
- }
- Screen.SetResolution(currentResolution.width, currentResolution.height, fullscreenMode, currentResolution.refreshRateRatio);
- PlayerPrefs.SetInt(VIDEO_RESOLUTION_WIDTH, currentResolution.width);
- PlayerPrefs.SetInt(VIDEO_RESOLUTION_HEIGHT, currentResolution.height);
- }
-
- public void SetPostProcessing(bool active)
- {
- postProcessing = active;
- onPPSettingsChange.Invoke();
- PlayerPrefs.SetInt(VIDEO_POSTPROCESSING, active ? 1 : 0);
- }
-
- public void SetAntiAliasing(MsaaQuality quality)
- {
- antiAliasing = quality;
- renderAsset.msaaSampleCount = (int)antiAliasing;
- PlayerPrefs.SetInt(VIDEO_ANTIALIASING, AALevelToInt(antiAliasing));
- }
-
- public void SetFullscreen(bool isFullscreen)
- {
- fullscreen = isFullscreen;
- Screen.fullScreen = isFullscreen;
- PlayerPrefs.SetInt(VIDEO_FULLSCREEN, isFullscreen ? 1 : 0);
- }
-
- public void SetShadowResolution(int res)
- {
- }
-
- public void SetRenderscale(float scale)
- {
- renderscale = scale;
- renderAsset.renderScale = renderscale;
- PlayerPrefs.SetFloat(VIDEO_RENDERSCALE, renderscale);
- }
-
- public void SetAudioValue(float value, MixerChannel channel)
- {
- string text;
- switch (channel)
- {
- case MixerChannel.Environment:
- volumeEnvironment = value;
- PlayerPrefs.SetFloat(AUDIO_ENVIRONMENT, value);
- text = MIXER_ENVIRONMENT;
- break;
- case MixerChannel.Music:
- volumeMusic = value;
- PlayerPrefs.SetFloat(AUDIO_MUSIC, value);
- text = MIXER_MUSIC;
- break;
- case MixerChannel.SFX:
- volumeSFX = value;
- PlayerPrefs.SetFloat(AUDIO_SFX, value);
- text = MIXER_SFX;
- break;
- case MixerChannel.Master:
- volumeMaster = value;
- PlayerPrefs.SetFloat(AUDIO_MASTER, value);
- text = MIXER_MASTER;
- break;
- default:
- text = MIXER_MASTER;
- break;
- }
- mixer.SetFloat(text, PercentageToAudioLogarithmic(value));
- }
-
- public float GetAudioVolume(MixerChannel channel)
- {
- return channel switch
- {
- MixerChannel.Environment => volumeEnvironment,
- MixerChannel.Music => volumeMusic,
- MixerChannel.SFX => volumeSFX,
- MixerChannel.Master => volumeMaster,
- _ => volumeMaster,
- };
- }
-
- public static float PercentageToAudioLogarithmic(float value)
- {
- if ((double)value < 0.0001)
- {
- value = 0.0001f;
- }
- if (value > 1f)
- {
- value = 1f;
- }
- value = Mathf.Log10(value) * 20f;
- return value;
- }
-
- public void SetResetUnitsInTheMorning(bool value)
- {
- resetUnitFormationEveryMorning = value;
- PlayerPrefs.SetInt(GAMEPLAY_RESET_UNIS_EVERY_MORNING, value ? 1 : 0);
- }
-
- public void SetUseLargetInGameUI(bool value)
- {
- useLargeInGameUI = value;
- PlayerPrefs.SetInt(GAMEPLAY_USE_LARGE_UI, value ? 1 : 0);
- }
-
- public static int AALevelToInt(MsaaQuality level)
- {
- return level switch
- {
- MsaaQuality.Disabled => 0,
- MsaaQuality._2x => 1,
- MsaaQuality._4x => 2,
- MsaaQuality._8x => 3,
- _ => 0,
- };
- }
-
- public static MsaaQuality IntToAALevel(int i)
- {
- return i switch
- {
- 0 => MsaaQuality.Disabled,
- 1 => MsaaQuality._2x,
- 2 => MsaaQuality._4x,
- 3 => MsaaQuality._8x,
- _ => MsaaQuality.Disabled,
- };
- }
-
- private void InitializeVideoSettingsToPlayerPrefs()
- {
- Resolution resolution = Screen.resolutions[Screen.resolutions.Length - 1];
- PlayerPrefs.SetInt(VIDEO_RESOLUTION_WIDTH, resolution.width);
- PlayerPrefs.SetInt(VIDEO_RESOLUTION_HEIGHT, resolution.height);
- PlayerPrefs.SetInt(VIDEO_FULLSCREEN, 1);
- PlayerPrefs.SetInt(VIDEO_POSTPROCESSING, 1);
- PlayerPrefs.SetInt(VIDEO_ANTIALIASING, AALevelToInt(MsaaQuality._4x));
- PlayerPrefs.SetFloat(VIDEO_RENDERSCALE, 1f);
- PlayerPrefs.SetInt(VIDEO_INITIALIZED, 1);
- }
-
- private void LoadVideoSettingsFromPlayerPrefs()
- {
- if (PlayerPrefs.GetInt(VIDEO_INITIALIZED) == 0)
- {
- InitializeVideoSettingsToPlayerPrefs();
- }
- Resolution resolution = default(Resolution);
- resolution.width = PlayerPrefs.GetInt(VIDEO_RESOLUTION_WIDTH);
- resolution.height = PlayerPrefs.GetInt(VIDEO_RESOLUTION_HEIGHT);
- fullscreen = PlayerPrefs.GetInt(VIDEO_FULLSCREEN) != 0;
- renderscale = PlayerPrefs.GetFloat(VIDEO_RENDERSCALE);
- SetResolution(resolution);
- SetPostProcessing(PlayerPrefs.GetInt(VIDEO_POSTPROCESSING) != 0);
- SetAntiAliasing(IntToAALevel(PlayerPrefs.GetInt(VIDEO_ANTIALIASING)));
- SetRenderscale(renderscale);
- }
-
- private void InitializeAudioSettingsToPlayerPrefs()
- {
- PlayerPrefs.SetFloat(AUDIO_MASTER, 1f);
- PlayerPrefs.SetFloat(AUDIO_MUSIC, 1f);
- PlayerPrefs.SetFloat(AUDIO_SFX, 1f);
- PlayerPrefs.SetFloat(AUDIO_ENVIRONMENT, 1f);
- PlayerPrefs.SetInt(AUDIO_INITIALIZED, 1);
- }
-
- private void LoadAudioSettingsFromPlayerPrefs()
- {
- if (PlayerPrefs.GetInt(AUDIO_INITIALIZED) == 0)
- {
- InitializeAudioSettingsToPlayerPrefs();
- }
- volumeMaster = PlayerPrefs.GetFloat(AUDIO_MASTER);
- volumeMusic = PlayerPrefs.GetFloat(AUDIO_MUSIC);
- volumeSFX = PlayerPrefs.GetFloat(AUDIO_SFX);
- volumeEnvironment = PlayerPrefs.GetFloat(AUDIO_ENVIRONMENT);
- SetAudioValue(volumeMaster, MixerChannel.Master);
- SetAudioValue(volumeMusic, MixerChannel.Music);
- SetAudioValue(volumeEnvironment, MixerChannel.Environment);
- SetAudioValue(volumeSFX, MixerChannel.SFX);
- }
-
- private void InitializeGameplaySettingsToPlayerPrefs()
- {
- PlayerPrefs.SetInt(GAMEPLAY_RESET_UNIS_EVERY_MORNING, 1);
- PlayerPrefs.SetInt(GAMEPLAY_USE_LARGE_UI, 0);
- PlayerPrefs.SetInt(GAMEPLAY_INITIALIZED, 1);
- }
-
- private void LoadGameplaySettingsFromPlayerPrefs()
- {
- if (PlayerPrefs.GetInt(GAMEPLAY_INITIALIZED) == 0)
- {
- InitializeGameplaySettingsToPlayerPrefs();
- }
- resetUnitFormationEveryMorning = PlayerPrefs.GetInt(GAMEPLAY_RESET_UNIS_EVERY_MORNING) != 0;
- useLargeInGameUI = PlayerPrefs.GetInt(GAMEPLAY_USE_LARGE_UI) != 0;
- }
-
- public void ResetVideoSettings()
- {
- InitializeVideoSettingsToPlayerPrefs();
- LoadVideoSettingsFromPlayerPrefs();
- }
-
- public void ResetAudioSettings()
- {
- InitializeAudioSettingsToPlayerPrefs();
- LoadAudioSettingsFromPlayerPrefs();
- }
-
- public void ResetGameplaySettings()
- {
- InitializeGameplaySettingsToPlayerPrefs();
- LoadGameplaySettingsFromPlayerPrefs();
- }
-}
diff --git a/GameCode/SettingsPostProcessing.cs b/GameCode/SettingsPostProcessing.cs
deleted file mode 100644
index 18c1991..0000000
--- a/GameCode/SettingsPostProcessing.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class SettingsPostProcessing : MonoBehaviour
-{
- public Checkbox checkbox;
-
- public void OnApply()
- {
- SettingsManager.Instance.SetPostProcessing(checkbox.state);
- }
-
- private void OnEnable()
- {
- if ((bool)SettingsManager.Instance)
- {
- checkbox.SetState(SettingsManager.Instance.PostProcessing);
- }
- }
-}
diff --git a/GameCode/SettingsPostProcessingHelper.cs b/GameCode/SettingsPostProcessingHelper.cs
deleted file mode 100644
index a255c32..0000000
--- a/GameCode/SettingsPostProcessingHelper.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-using UnityEngine.Rendering;
-
-public class SettingsPostProcessingHelper : MonoBehaviour
-{
- public Volume target;
-
- private void Start()
- {
- Refresh();
- SettingsManager.Instance.onPPSettingsChange.AddListener(Refresh);
- }
-
- private void Refresh()
- {
- target.enabled = SettingsManager.Instance.PostProcessing;
- }
-}
diff --git a/GameCode/SettingsRenderScale.cs b/GameCode/SettingsRenderScale.cs
deleted file mode 100644
index de1aa86..0000000
--- a/GameCode/SettingsRenderScale.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-
-public class SettingsRenderScale : MonoBehaviour
-{
- public TFUISlider target;
-
- private void OnEnable()
- {
- if (SettingsManager.Instance != null)
- {
- target.SetValue(SettingsManager.Instance.Renderscale);
- }
- }
-
- private void Start()
- {
- target.onChange.AddListener(OnChange);
- }
-
- private void OnChange()
- {
- SettingsManager.Instance.SetRenderscale(target.value);
- }
-}
diff --git a/GameCode/SettingsResetUnitsMorning.cs b/GameCode/SettingsResetUnitsMorning.cs
deleted file mode 100644
index ea05686..0000000
--- a/GameCode/SettingsResetUnitsMorning.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using UnityEngine;
-
-public class SettingsResetUnitsMorning : MonoBehaviour
-{
- public Checkbox checkbox;
-
- public void OnApply()
- {
- SettingsManager.Instance.SetResetUnitsInTheMorning(checkbox.state);
- }
-
- private void OnEnable()
- {
- if ((bool)SettingsManager.Instance)
- {
- checkbox.SetState(SettingsManager.Instance.ResetUnitFormationEveryMorning);
- }
- }
-}
diff --git a/GameCode/SettingsResetVideo.cs b/GameCode/SettingsResetVideo.cs
deleted file mode 100644
index cd3bc2e..0000000
--- a/GameCode/SettingsResetVideo.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using UnityEngine;
-
-public class SettingsResetVideo : MonoBehaviour
-{
- public GameObject objToRefresh;
-
- public void ResetVideoSettings()
- {
- SettingsManager.Instance.ResetVideoSettings();
- objToRefresh.SetActive(value: false);
- objToRefresh.SetActive(value: true);
- }
-}
diff --git a/GameCode/SettingsResolution.cs b/GameCode/SettingsResolution.cs
deleted file mode 100644
index 6a11d56..0000000
--- a/GameCode/SettingsResolution.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class SettingsResolution : MonoBehaviour
-{
- public EnumSelector selector;
-
- private Dictionary<int, Resolution> availableResolutions = new Dictionary<int, Resolution>();
-
- private void Start()
- {
- selector.onChange.AddListener(ApplyResolution);
- }
-
- private void OnEnable()
- {
- selector.options.Clear();
- availableResolutions.Clear();
- int index = 0;
- for (int i = 0; i < Screen.resolutions.Length; i++)
- {
- Resolution resolution = Screen.resolutions[i];
- availableResolutions.Add(i, resolution);
- selector.options.Add(resolution.ToString());
- if (resolution.CompareResolutions(SettingsManager.Instance.CurrentResolution))
- {
- index = i;
- }
- }
- selector.SetIndex(index);
- }
-
- private void ApplyResolution()
- {
- if (availableResolutions.TryGetValue(selector.Index, out var value) && !value.CompareResolutions(SettingsManager.Instance.CurrentResolution))
- {
- SettingsManager.Instance.SetResolution(value);
- }
- }
-}
diff --git a/GameCode/SettingsShadowResolution.cs b/GameCode/SettingsShadowResolution.cs
deleted file mode 100644
index d8bb6cb..0000000
--- a/GameCode/SettingsShadowResolution.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class SettingsShadowResolution : MonoBehaviour
-{
- public EnumSelector selector;
-
- private void Start()
- {
- selector.onChange.AddListener(OnChange);
- }
-
- private void OnEnable()
- {
- selector.options.Clear();
- selector.options.AddRange(new string[5] { "256", "512", "1024", "2048", "4096" });
- if ((bool)SettingsManager.Instance)
- {
- selector.SetIndex(SettingsManager.AALevelToInt(SettingsManager.Instance.AntiAliasing));
- }
- }
-
- private void OnChange()
- {
- SettingsManager.Instance.SetAntiAliasing(SettingsManager.IntToAALevel(selector.Index));
- }
-}
diff --git a/GameCode/SettingsUIHelper.cs b/GameCode/SettingsUIHelper.cs
deleted file mode 100644
index 1156f53..0000000
--- a/GameCode/SettingsUIHelper.cs
+++ /dev/null
@@ -1,114 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class SettingsUIHelper : MonoBehaviour
-{
- [Serializable]
- public class SettingsTab
- {
- public TFUITextButton parentElement;
-
- public VerticalLayoutGroup childContainer;
-
- public void ComputeNavigationForSettingsTab()
- {
- List<ThronefallUIElement> list = new List<ThronefallUIElement>();
- foreach (Transform item in childContainer.transform)
- {
- list.Add(item.GetComponent<ThronefallUIElement>());
- }
- parentElement.botNav = list[0];
- parentElement.topNav = list[list.Count - 1];
- for (int i = 0; i < list.Count; i++)
- {
- ThronefallUIElement thronefallUIElement = list[i];
- if (i == 0)
- {
- thronefallUIElement.topNav = parentElement;
- }
- else
- {
- thronefallUIElement.topNav = list[i - 1];
- }
- if (i == list.Count - 1)
- {
- thronefallUIElement.botNav = parentElement;
- }
- else
- {
- thronefallUIElement.botNav = list[i + 1];
- }
- }
- }
- }
-
- public UIFrame targetFrame;
-
- public SettingsTab videoTab;
-
- public SettingsTab audioTab;
-
- public SettingsTab gameplayTab;
-
- public SettingsTab controlsTab;
-
- public GameObject dimBG;
-
- private SettingsTab currentSelectedTab;
-
- private Dictionary<ThronefallUIElement, SettingsTab> allTabs = new Dictionary<ThronefallUIElement, SettingsTab>();
-
- private void Awake()
- {
- allTabs.Add(videoTab.parentElement, videoTab);
- allTabs.Add(audioTab.parentElement, audioTab);
- allTabs.Add(gameplayTab.parentElement, gameplayTab);
- allTabs.Add(controlsTab.parentElement, controlsTab);
- videoTab.childContainer.gameObject.SetActive(value: false);
- audioTab.childContainer.gameObject.SetActive(value: false);
- gameplayTab.childContainer.gameObject.SetActive(value: false);
- controlsTab.childContainer.gameObject.SetActive(value: false);
- RecomputeAllNavigation();
- }
-
- private void RecomputeAllNavigation()
- {
- videoTab.ComputeNavigationForSettingsTab();
- audioTab.ComputeNavigationForSettingsTab();
- gameplayTab.ComputeNavigationForSettingsTab();
- controlsTab.ComputeNavigationForSettingsTab();
- }
-
- public void OnShow()
- {
- if (SceneTransitionManager.instance.CurrentSceneState == SceneTransitionManager.SceneState.MainMenu)
- {
- dimBG.SetActive(value: false);
- }
- else
- {
- dimBG.SetActive(value: true);
- }
- }
-
- public void OnSelect()
- {
- SettingsTab value = null;
- if (allTabs.TryGetValue(targetFrame.CurrentSelection, out value))
- {
- if (currentSelectedTab != null)
- {
- currentSelectedTab.childContainer.gameObject.SetActive(value: false);
- currentSelectedTab.parentElement.applyOverrideStyle = false;
- }
- currentSelectedTab = value;
- currentSelectedTab.childContainer.gameObject.SetActive(value: true);
- }
- else if (currentSelectedTab != null)
- {
- currentSelectedTab.parentElement.applyOverrideStyle = true;
- }
- }
-}
diff --git a/GameCode/SettingsUseLargeUI.cs b/GameCode/SettingsUseLargeUI.cs
deleted file mode 100644
index c7d4d22..0000000
--- a/GameCode/SettingsUseLargeUI.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using UnityEngine;
-
-public class SettingsUseLargeUI : MonoBehaviour
-{
- public Checkbox checkbox;
-
- public UIScaleHandler uiScaleHandler;
-
- public void OnApply()
- {
- SettingsManager.Instance.SetUseLargetInGameUI(checkbox.state);
- uiScaleHandler.Refresh();
- }
-
- private void OnEnable()
- {
- if ((bool)SettingsManager.Instance)
- {
- checkbox.SetState(SettingsManager.Instance.UseLargeInGameUI);
- }
- }
-}
diff --git a/GameCode/SharpCornerMidigator.cs b/GameCode/SharpCornerMidigator.cs
deleted file mode 100644
index 66500db..0000000
--- a/GameCode/SharpCornerMidigator.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System.Collections.Generic;
-using Pathfinding;
-using UnityEngine;
-
-public class SharpCornerMidigator : MonoModifier
-{
- public float extendCorners = 2f;
-
- private List<Vector3> path;
-
- private Vector3 pathPointLast;
-
- private Vector2 toLastPoint;
-
- private Vector2 toNextPoint;
-
- private float angle;
-
- private Vector2 normal2d;
-
- private float strngth;
-
- private Vector3 normal;
-
- public override int Order => 100;
-
- public override void Apply(Path _p)
- {
- if (_p.path != null && _p.path.Count != 0 && _p.vectorPath != null && _p.vectorPath.Count != 0)
- {
- path = _p.vectorPath;
- pathPointLast = path[0];
- for (int i = 1; i < path.Count - 1; i++)
- {
- toLastPoint = new Vector2(pathPointLast.x, pathPointLast.z) - new Vector2(path[i].x, path[i].z);
- toNextPoint = new Vector2(path[i + 1].x, path[i + 1].z) - new Vector2(path[i].x, path[i].z);
- angle = Vector2.Angle(toLastPoint, toNextPoint);
- normal2d = -(toLastPoint.normalized + toNextPoint.normalized).normalized;
- strngth = (180f - angle) / 180f;
- normal = new Vector3(normal2d.x, 0f, normal2d.y);
- pathPointLast = path[i];
- path[i] += normal * strngth * extendCorners;
- }
- }
- }
-}
diff --git a/GameCode/SimpleRotator.cs b/GameCode/SimpleRotator.cs
deleted file mode 100644
index aa2d0b4..0000000
--- a/GameCode/SimpleRotator.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using UnityEngine;
-
-public class SimpleRotator : MonoBehaviour
-{
- public Vector3 rotationDelta;
-
- public Space relativeTo;
-
- public bool randomYRotationOnEnable;
-
- private void OnEnable()
- {
- if (randomYRotationOnEnable)
- {
- base.transform.Rotate(Vector3.up * Random.value * 360f, Space.World);
- }
- }
-
- private void Update()
- {
- base.transform.Rotate(rotationDelta * Time.deltaTime, relativeTo);
- }
-}
diff --git a/GameCode/SimpleUIScaler.cs b/GameCode/SimpleUIScaler.cs
deleted file mode 100644
index 348433a..0000000
--- a/GameCode/SimpleUIScaler.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using UnityEngine;
-
-public class SimpleUIScaler : MonoBehaviour
-{
- public bool offsetPositionWhenLarge;
-
- public Vector2 offset;
-
- private Vector2 ogPosition;
-
- private bool ogPositionBuffered;
-
- private RectTransform bufferedRT;
-
- private void OnEnable()
- {
- if (offsetPositionWhenLarge)
- {
- bufferedRT = GetComponent<RectTransform>();
- if (!ogPositionBuffered)
- {
- ogPosition = bufferedRT.anchoredPosition;
- ogPositionBuffered = true;
- }
- }
- if (SettingsManager.Instance.UseLargeInGameUI)
- {
- if (offsetPositionWhenLarge)
- {
- bufferedRT.anchoredPosition = ogPosition + offset;
- }
- base.transform.localScale = Vector3.one * 1.5f;
- }
- else
- {
- if (offsetPositionWhenLarge)
- {
- bufferedRT.anchoredPosition = ogPosition;
- }
- base.transform.localScale = Vector3.one;
- }
- }
-}
diff --git a/GameCode/SimpleWalk.cs b/GameCode/SimpleWalk.cs
deleted file mode 100644
index b6c7e54..0000000
--- a/GameCode/SimpleWalk.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using Pathfinding.RVO;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class SimpleWalk : MonoBehaviour
-{
- public RVOController rvo;
-
- public Transform animationRoot;
-
- public float bounceHeight = 0.5f;
-
- public AnimationCurve bounceCurve;
-
- public float bounceSpeed = 1f;
-
- private float bounceClock;
-
- private float clockDelta;
-
- private float velocitySqrtDeadzone = 0.15f;
-
- [HideInInspector]
- public UnityEvent onGroundContact = new UnityEvent();
-
- private float lastGroundContactTimeStamp;
-
- private Vector3 initialRootPos;
-
- private void Start()
- {
- initialRootPos = animationRoot.localPosition;
- bounceClock = Random.value;
- }
-
- private void Update()
- {
- if (rvo.velocity.sqrMagnitude > velocitySqrtDeadzone)
- {
- clockDelta = Time.deltaTime * bounceSpeed;
- bounceClock += clockDelta;
- animationRoot.transform.localPosition = Vector3.Lerp(initialRootPos, initialRootPos + Vector3.up * bounceHeight, bounceCurve.Evaluate(bounceClock));
- if (bounceClock % 1f <= clockDelta && Mathf.Abs(bounceClock - lastGroundContactTimeStamp) > 0.5f)
- {
- lastGroundContactTimeStamp = bounceClock;
- onGroundContact.Invoke();
- }
- }
- else
- {
- animationRoot.transform.localPosition = initialRootPos;
- bounceClock = 0f;
- }
- }
-}
diff --git a/GameCode/SizeRectangleToMeshBounds.cs b/GameCode/SizeRectangleToMeshBounds.cs
deleted file mode 100644
index 8962f24..0000000
--- a/GameCode/SizeRectangleToMeshBounds.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using Shapes;
-using UnityEngine;
-
-[RequireComponent(typeof(Rectangle))]
-public class SizeRectangleToMeshBounds : MonoBehaviour
-{
- public float xMargin = 1f;
-
- public float yMargin = 1f;
-
- public MeshFilter meshFilter;
-
- [ContextMenu("RESIZE")]
- private void OnEnable()
- {
- Rectangle component = GetComponent<Rectangle>();
- component.Height = meshFilter.sharedMesh.bounds.size.y + 2f * yMargin;
- component.Width = meshFilter.sharedMesh.bounds.size.x + 2f * xMargin;
- }
-}
diff --git a/GameCode/Spawn.cs b/GameCode/Spawn.cs
deleted file mode 100644
index f913b71..0000000
--- a/GameCode/Spawn.cs
+++ /dev/null
@@ -1,171 +0,0 @@
-using System;
-using UnityEngine;
-
-[Serializable]
-public class Spawn
-{
- public float delay;
-
- public GameObject enemyPrefab;
-
- public int count;
-
- public float interval;
-
- public Transform spawnLine;
-
- public int goldCoins;
-
- private int[] goldCoinsPerEnemy;
-
- private float waitBeforeNextSpawn;
-
- private int spawnedUnits;
-
- private bool finished;
-
- private bool tauntTheTiger;
-
- private bool tauntTheTurtle;
-
- private bool tauntTheFalcon;
-
- private bool tauntTheRat;
-
- private Hp hpTemp;
-
- public int SpawnedUnits => spawnedUnits;
-
- public bool Finished => finished;
-
- public void Reset(bool _resetGold = true)
- {
- tauntTheTiger = PerkManager.IsEquipped(PerkManager.instance.tigerGodPerk);
- tauntTheTurtle = PerkManager.IsEquipped(PerkManager.instance.turtleGodPerk);
- tauntTheFalcon = PerkManager.IsEquipped(PerkManager.instance.falconGodPerk);
- tauntTheRat = PerkManager.IsEquipped(PerkManager.instance.ratGodPerk);
- waitBeforeNextSpawn = delay;
- spawnedUnits = 0;
- finished = false;
- goldCoinsPerEnemy = new int[count];
- int num = goldCoins;
- if (tauntTheRat)
- {
- num = Mathf.FloorToInt((float)num / 2f);
- }
- for (int i = 0; i < num; i++)
- {
- goldCoinsPerEnemy[UnityEngine.Random.Range(0, goldCoinsPerEnemy.Length)] = 0;
- }
- if (_resetGold)
- {
- for (int j = 0; j < num; j++)
- {
- goldCoinsPerEnemy[UnityEngine.Random.Range(0, goldCoinsPerEnemy.Length)]++;
- }
- }
- }
-
- public void Update()
- {
- if (finished)
- {
- return;
- }
- waitBeforeNextSpawn -= Time.deltaTime;
- if (waitBeforeNextSpawn > 0f)
- {
- return;
- }
- waitBeforeNextSpawn = interval;
- Vector3 randomPointOnSpawnLine = GetRandomPointOnSpawnLine();
- GameObject gameObject;
- if (spawnLine == enemyPrefab.transform)
- {
- gameObject = enemyPrefab;
- gameObject.SetActive(value: true);
- }
- else
- {
- gameObject = UnityEngine.Object.Instantiate(enemyPrefab, randomPointOnSpawnLine, Quaternion.identity);
- EnemySpawnManager instance = EnemySpawnManager.instance;
- if ((bool)instance.weaponOnSpawn)
- {
- instance.weaponOnSpawn.Attack(randomPointOnSpawnLine + Vector3.up * instance.weaponAttackHeight, null, Vector3.forward, gameObject.GetComponent<TaggedObject>());
- }
- }
- if (goldCoinsPerEnemy.Length > spawnedUnits)
- {
- gameObject.GetComponentInChildren<Hp>().coinCount = goldCoinsPerEnemy[spawnedUnits];
- }
- if (tauntTheTurtle)
- {
- hpTemp = gameObject.GetComponentInChildren<Hp>();
- hpTemp.maxHp *= PerkManager.instance.tauntTheTurtle_hpMultiplyer;
- hpTemp.Heal(float.MaxValue);
- }
- if (tauntTheTiger)
- {
- AutoAttack[] componentsInChildren = gameObject.GetComponentsInChildren<AutoAttack>();
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].DamageMultiplyer *= PerkManager.instance.tauntTheTiger_damageMultiplyer;
- }
- Hp[] componentsInChildren2 = gameObject.GetComponentsInChildren<Hp>();
- for (int i = 0; i < componentsInChildren2.Length; i++)
- {
- componentsInChildren2[i].DamageMultiplyer *= PerkManager.instance.tauntTheTiger_damageMultiplyer;
- }
- }
- if (tauntTheFalcon)
- {
- PathfindMovementEnemy[] componentsInChildren3 = gameObject.GetComponentsInChildren<PathfindMovementEnemy>();
- foreach (PathfindMovementEnemy obj in componentsInChildren3)
- {
- obj.movementSpeed *= PerkManager.instance.tauntTheFalcon_speedMultiplyer;
- obj.agroTimeWhenAttackedByPlayer *= PerkManager.instance.tauntTheFalcon_chasePlayerTimeMultiplyer;
- }
- }
- spawnedUnits++;
- if (spawnedUnits >= count)
- {
- finished = true;
- }
- }
-
- public Vector3 GetRandomPointOnSpawnLine()
- {
- float num = GetTotalSpawnLineLength() * UnityEngine.Random.value;
- float num2 = 0f;
- for (int i = 0; i < spawnLine.childCount - 1; i++)
- {
- float magnitude = (spawnLine.GetChild(i).position - spawnLine.GetChild(i + 1).position).magnitude;
- if (magnitude != 0f)
- {
- if (magnitude + num2 >= num)
- {
- num -= num2;
- float t = num / magnitude;
- Vector3 position = Vector3.Lerp(spawnLine.GetChild(i).position, spawnLine.GetChild(i + 1).position, t);
- return AstarPath.active.GetNearest(position).position;
- }
- num2 += magnitude;
- }
- }
- if (spawnLine.childCount > 0)
- {
- return AstarPath.active.GetNearest(spawnLine.GetChild(0).position).position;
- }
- return AstarPath.active.GetNearest(spawnLine.position).position;
- }
-
- public float GetTotalSpawnLineLength()
- {
- float num = 0f;
- for (int i = 0; i < spawnLine.childCount - 1; i++)
- {
- num += (spawnLine.GetChild(i).position - spawnLine.GetChild(i + 1).position).magnitude;
- }
- return num;
- }
-}
diff --git a/GameCode/SpinAnimation.cs b/GameCode/SpinAnimation.cs
deleted file mode 100644
index 6a4334b..0000000
--- a/GameCode/SpinAnimation.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class SpinAnimation : OneShotAnimationBase
-{
- public AnimationCurve curve;
-
- public float duration = 0.75f;
-
- public Vector3 spinRotation;
-
- public Transform transformToAnimate;
-
- private Quaternion initialRotation;
-
- private Quaternion targetRotation;
-
- private void Start()
- {
- initialRotation = transformToAnimate.localRotation;
- targetRotation = Quaternion.Euler(spinRotation.x, spinRotation.y, spinRotation.z);
- }
-
- private IEnumerator Animate()
- {
- transformToAnimate.localRotation = initialRotation;
- float timer = 0f;
- while (timer < duration)
- {
- transformToAnimate.localRotation = Quaternion.Euler(initialRotation.eulerAngles + spinRotation * (timer / duration));
- timer += Time.deltaTime;
- yield return null;
- }
- transformToAnimate.localRotation = initialRotation;
- }
-
- public override void Trigger()
- {
- if (base.gameObject.activeInHierarchy)
- {
- StopAllCoroutines();
- StartCoroutine(Animate());
- }
- }
-}
diff --git a/GameCode/SplashDamageArea.cs b/GameCode/SplashDamageArea.cs
deleted file mode 100644
index 84a27a9..0000000
--- a/GameCode/SplashDamageArea.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class SplashDamageArea : MonoBehaviour
-{
- public enum EShape
- {
- Sphere,
- Box
- }
-
- public EShape shape;
-
- public Vector3 boxSize;
-
- public float sphereRadius;
-
- public LayerMask layerMaskRecieveDamage;
-
- private static Collider[] collidersTemp = new Collider[200];
-
- private void OnDrawGizmosSelected()
- {
- if (shape == EShape.Box)
- {
- Gizmos.color = Color.red;
- Gizmos.matrix = base.transform.localToWorldMatrix;
- Gizmos.DrawWireCube(Vector3.zero, boxSize);
- }
- else
- {
- Gizmos.color = Color.red;
- Gizmos.matrix = base.transform.localToWorldMatrix;
- Gizmos.DrawWireSphere(Vector3.zero, sphereRadius);
- }
- }
-
- public void AddReiveDamageHpScriptsInAreaToList(List<Hp> _listOfHpScripts)
- {
- int num = 0;
- num = ((shape != EShape.Box) ? Physics.OverlapSphereNonAlloc(base.transform.position, sphereRadius, collidersTemp, layerMaskRecieveDamage) : Physics.OverlapBoxNonAlloc(base.transform.position, boxSize, collidersTemp, base.transform.rotation, layerMaskRecieveDamage));
- for (int i = 0; i < num; i++)
- {
- Hp componentInParent = collidersTemp[i].GetComponentInParent<Hp>();
- if (!(componentInParent == null) && !_listOfHpScripts.Contains(componentInParent))
- {
- _listOfHpScripts.Add(componentInParent);
- }
- }
- }
-}
diff --git a/GameCode/StabMA.cs b/GameCode/StabMA.cs
deleted file mode 100644
index fe34737..0000000
--- a/GameCode/StabMA.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using UnityEngine;
-
-public class StabMA : ManualAttack
-{
- public float maximumCooldownTime = 15f;
-
- public float minimumCooldownPercentage = 0.2f;
-
- private int targetsStabbed;
-
- private AudioSet.ClipArray caSuccessfulHit;
-
- private AudioSet.ClipArray caFailedHit;
-
- public int TargetsStabeed => targetsStabbed;
-
- public override void Start()
- {
- base.Start();
- caSuccessfulHit = audioSet.PlayerBowStab;
- caFailedHit = audioSet.PlayerBowStabMiss;
- }
-
- public override void Attack()
- {
- TaggedObject taggedObject = FindAttackTarget(_choosePreferredTargetIfPossible: true);
- Hp hp = null;
- if ((bool)taggedObject)
- {
- hp = taggedObject.Hp;
- cooldownTime = maximumCooldownTime * (minimumCooldownPercentage + hp.HpPercentage * (1f - minimumCooldownPercentage));
- cooldown = cooldownTime;
- }
- float num = 0f;
- if ((bool)hp)
- {
- num = hp.HpValue;
- }
- weapon.Attack(base.transform.position + spawnAttackHeight * Vector3.up, hp, transformForAttackDirection.forward, myTaggedObj, base.AttackDamageMultiplyer);
- if ((bool)hp)
- {
- if (num > hp.HpValue)
- {
- StabSuccessful();
- }
- else
- {
- StabMissed();
- }
- }
- else if (num > 0f)
- {
- StabSuccessful();
- }
- else
- {
- StabMissed();
- }
- }
-
- private void StabSuccessful()
- {
- audioManager.PlaySoundAsOneShot(caSuccessfulHit, 1f, Random.Range(0.9f, 1.1f), audioSet.mixGroupFX, 5);
- targetsStabbed++;
- }
-
- private void StabMissed()
- {
- audioManager.PlaySoundAsOneShot(caFailedHit, 1f, Random.Range(0.9f, 1.1f), audioSet.mixGroupFX, 5);
- }
-}
diff --git a/GameCode/SteamManager.cs b/GameCode/SteamManager.cs
deleted file mode 100644
index fb2f904..0000000
--- a/GameCode/SteamManager.cs
+++ /dev/null
@@ -1,209 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using AOT;
-using Steamworks;
-using UnityEngine;
-using UnityEngine.Events;
-
-[DisallowMultipleComponent]
-public class SteamManager : MonoBehaviour
-{
- public struct LeaderboardEntry
- {
- public string username;
-
- public int score;
- }
-
- protected static bool s_EverInitialized = false;
-
- protected static SteamManager s_instance;
-
- protected bool m_bInitialized;
-
- protected SteamAPIWarningMessageHook_t m_SteamAPIWarningMessageHook;
-
- private static CallResult<LeaderboardFindResult_t> _findLeaderboardCallback = new CallResult<LeaderboardFindResult_t>();
-
- public static int scoreToUpload = -1;
-
- private static CallResult<LeaderboardScoresDownloaded_t> _downloadedScoresCallback = new CallResult<LeaderboardScoresDownloaded_t>();
-
- public List<LeaderboardEntry> lastDownloadedLeaderboardEntires = new List<LeaderboardEntry>();
-
- public UnityEvent OnLeaderboardDownloadCallbackComplete = new UnityEvent();
-
- public static SteamManager Instance
- {
- get
- {
- if (s_instance == null)
- {
- return new GameObject("SteamManager").AddComponent<SteamManager>();
- }
- return s_instance;
- }
- }
-
- public static bool Initialized => Instance.m_bInitialized;
-
- [MonoPInvokeCallback(typeof(SteamAPIWarningMessageHook_t))]
- protected static void SteamAPIDebugTextHook(int nSeverity, StringBuilder pchDebugText)
- {
- Debug.LogWarning(pchDebugText);
- }
-
- [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
- private static void InitOnPlayMode()
- {
- s_EverInitialized = false;
- s_instance = null;
- }
-
- protected virtual void Awake()
- {
- if (s_instance != null)
- {
- UnityEngine.Object.Destroy(base.gameObject);
- return;
- }
- s_instance = this;
- scoreToUpload = -1;
- if (s_EverInitialized)
- {
- throw new Exception("Tried to Initialize the SteamAPI twice in one session!");
- }
- UnityEngine.Object.DontDestroyOnLoad(base.transform.root.gameObject);
- if (!Packsize.Test())
- {
- Debug.LogError("[Steamworks.NET] Packsize Test returned false, the wrong version of Steamworks.NET is being run in this platform.", this);
- }
- if (!DllCheck.Test())
- {
- Debug.LogError("[Steamworks.NET] DllCheck Test returned false, One or more of the Steamworks binaries seems to be the wrong version.", this);
- }
- try
- {
- if (SteamAPI.RestartAppIfNecessary(AppId_t.Invalid))
- {
- Debug.Log("[Steamworks.NET] Shutting down because RestartAppIfNecessary returned true. Steam will restart the application.");
- Application.Quit();
- return;
- }
- }
- catch (DllNotFoundException ex)
- {
- Debug.Log("[Steamworks.NET] Could not load [lib]steam_api.dll/so/dylib. It's likely not in the correct location. Refer to the README for more details.\n" + ex, this);
- Application.Quit();
- return;
- }
- m_bInitialized = SteamAPI.Init();
- if (!m_bInitialized)
- {
- Debug.Log("[Steamworks.NET] SteamAPI_Init() failed. This is likely the case because the Steam client is not running.", this);
- }
- else
- {
- s_EverInitialized = true;
- }
- }
-
- protected virtual void OnEnable()
- {
- if (s_instance == null)
- {
- s_instance = this;
- }
- if (m_bInitialized && m_SteamAPIWarningMessageHook == null)
- {
- m_SteamAPIWarningMessageHook = SteamAPIDebugTextHook;
- SteamClient.SetWarningMessageHook(m_SteamAPIWarningMessageHook);
- }
- }
-
- protected virtual void OnDestroy()
- {
- if (!(s_instance != this))
- {
- s_instance = null;
- if (m_bInitialized)
- {
- SteamAPI.Shutdown();
- }
- }
- }
-
- protected virtual void Update()
- {
- if (m_bInitialized)
- {
- SteamAPI.RunCallbacks();
- }
- }
-
- public void UploadHighscore(int _score, string _leaderboardName)
- {
- if (Initialized)
- {
- if (scoreToUpload != -1)
- {
- Debug.LogError("You can't upload multiple scores symultaneously with the current system.");
- return;
- }
- scoreToUpload = _score;
- SteamAPICall_t hAPICall = SteamUserStats.FindOrCreateLeaderboard(_leaderboardName, ELeaderboardSortMethod.k_ELeaderboardSortMethodDescending, ELeaderboardDisplayType.k_ELeaderboardDisplayTypeNumeric);
- _findLeaderboardCallback.Set(hAPICall, OnFindLeaderboardForUploadingScore);
- }
- }
-
- public void OnFindLeaderboardForUploadingScore(LeaderboardFindResult_t _callback, bool _failure)
- {
- if (_failure)
- {
- scoreToUpload = -1;
- return;
- }
- SteamUserStats.UploadLeaderboardScore(_callback.m_hSteamLeaderboard, ELeaderboardUploadScoreMethod.k_ELeaderboardUploadScoreMethodKeepBest, scoreToUpload, new int[0], 0);
- scoreToUpload = -1;
- }
-
- public void DownloadFriendsHighscores(string _leaderboardName)
- {
- lastDownloadedLeaderboardEntires.Clear();
- if (Initialized)
- {
- SteamAPICall_t hAPICall = SteamUserStats.FindLeaderboard(_leaderboardName);
- _findLeaderboardCallback.Set(hAPICall, OnFindLeaderboardFodDownloadingFriendsScore);
- }
- }
-
- public void OnFindLeaderboardFodDownloadingFriendsScore(LeaderboardFindResult_t _callback, bool _failure)
- {
- if (!_failure)
- {
- SteamAPICall_t hAPICall = SteamUserStats.DownloadLeaderboardEntries(_callback.m_hSteamLeaderboard, ELeaderboardDataRequest.k_ELeaderboardDataRequestFriends, 1, 100);
- _downloadedScoresCallback.Set(hAPICall, OnDownloadedScores);
- }
- }
-
- public void OnDownloadedScores(LeaderboardScoresDownloaded_t _callback, bool _failure)
- {
- if (_failure)
- {
- OnLeaderboardDownloadCallbackComplete.Invoke();
- return;
- }
- SteamUserStats.GetLeaderboardName(_callback.m_hSteamLeaderboard);
- int[] pDetails = new int[0];
- for (int i = 0; i < _callback.m_cEntryCount; i++)
- {
- SteamUserStats.GetDownloadedLeaderboardEntry(_callback.m_hSteamLeaderboardEntries, i, out var pLeaderboardEntry, pDetails, 0);
- LeaderboardEntry item = default(LeaderboardEntry);
- item.username = SteamFriends.GetFriendPersonaName(pLeaderboardEntry.m_steamIDUser);
- item.score = pLeaderboardEntry.m_nScore;
- lastDownloadedLeaderboardEntires.Add(item);
- }
- OnLeaderboardDownloadCallbackComplete.Invoke();
- }
-}
diff --git a/GameCode/SuperSimpleOceanAnimation.cs b/GameCode/SuperSimpleOceanAnimation.cs
deleted file mode 100644
index f30e181..0000000
--- a/GameCode/SuperSimpleOceanAnimation.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using System;
-using UnityEngine;
-
-public class SuperSimpleOceanAnimation : MonoBehaviour
-{
- private Vector3 startPosition;
-
- private float time;
-
- [SerializeField]
- private Vector3 waveHeight;
-
- [SerializeField]
- private float waveFrequency = 0.5f;
-
- [SerializeField]
- private Vector3 waveSideways;
-
- [SerializeField]
- private float waveSidewaysFrequency = 0.5f;
-
- [SerializeField]
- private Material targetMaterial;
-
- [SerializeField]
- private float panSpeed = 2f;
-
- private Vector2 offset;
-
- private void Start()
- {
- startPosition = base.transform.position;
- }
-
- private void Update()
- {
- time += Time.deltaTime;
- offset.x = time * panSpeed;
- base.transform.position = startPosition;
- base.transform.position += waveHeight * Mathf.Sin(time * waveFrequency * MathF.PI);
- base.transform.position += waveSideways * Mathf.Sin(time * waveSidewaysFrequency * MathF.PI);
- if (targetMaterial != null)
- {
- targetMaterial.SetTextureOffset("_BaseMap", offset);
- }
- }
-}
diff --git a/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs b/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs
deleted file mode 100644
index a822b9e..0000000
--- a/GameCode/SuspendPlayerCollisionUntilNoOverlap.cs
+++ /dev/null
@@ -1,96 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class SuspendPlayerCollisionUntilNoOverlap : MonoBehaviour
-{
- public bool triggerOnEnable = true;
-
- public LayerMask scanLayer;
-
- private List<Collider> targetColliders = new List<Collider>();
-
- private Collider[] overlaps;
-
- private bool suspended;
-
- private CharacterController trackedTarget;
-
- private void Awake()
- {
- targetColliders.AddRange(GetComponentsInChildren<Collider>());
- for (int num = targetColliders.Count - 1; num >= 0; num--)
- {
- if (targetColliders[num].isTrigger)
- {
- targetColliders.RemoveAt(num);
- }
- }
- }
-
- private void OnEnable()
- {
- if (triggerOnEnable)
- {
- Trigger();
- }
- }
-
- public void Trigger()
- {
- if (!PlayerManager.Instance)
- {
- return;
- }
- suspended = true;
- PlayerMovement closestPlayer = PlayerManager.GetClosestPlayer(base.transform.position);
- if ((bool)closestPlayer)
- {
- trackedTarget = closestPlayer.GetComponent<CharacterController>();
- }
- foreach (Collider targetCollider in targetColliders)
- {
- targetCollider.isTrigger = true;
- }
- }
-
- private void SwitchBack()
- {
- suspended = false;
- foreach (Collider targetCollider in targetColliders)
- {
- targetCollider.isTrigger = false;
- }
- }
-
- private void Update()
- {
- if (!suspended)
- {
- return;
- }
- if ((bool)trackedTarget)
- {
- float num = trackedTarget.height / 2f;
- Vector3 point = trackedTarget.transform.position + Vector3.down * num;
- Vector3 point2 = trackedTarget.transform.position + Vector3.up * num;
- overlaps = Physics.OverlapCapsule(point, point2, trackedTarget.radius, scanLayer, QueryTriggerInteraction.Collide);
- bool flag = true;
- Collider[] array = overlaps;
- foreach (Collider item in array)
- {
- if (targetColliders.Contains(item))
- {
- flag = false;
- }
- }
- if (flag)
- {
- SwitchBack();
- }
- }
- else
- {
- SwitchBack();
- }
- }
-}
diff --git a/GameCode/TFUIAudioHelper.cs b/GameCode/TFUIAudioHelper.cs
deleted file mode 100644
index 39c293e..0000000
--- a/GameCode/TFUIAudioHelper.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using UnityEngine;
-
-[RequireComponent(typeof(ThronefallUIElement))]
-public class TFUIAudioHelper : MonoBehaviour
-{
- public bool playOnColdSelect;
-
- public ThronefallAudioManager.AudioOneShot onSelect = ThronefallAudioManager.AudioOneShot.ButtonSelect;
-
- public ThronefallAudioManager.AudioOneShot onApply = ThronefallAudioManager.AudioOneShot.ButtonApply;
-
- private ThronefallUIElement tfui;
-
- private bool selected
- {
- get
- {
- if (tfui.CurrentState == ThronefallUIElement.SelectionState.Selected || tfui.CurrentState == ThronefallUIElement.SelectionState.FocussedAndSelected)
- {
- if (tfui.PreviousState != ThronefallUIElement.SelectionState.FocussedAndSelected)
- {
- return tfui.PreviousState != ThronefallUIElement.SelectionState.Selected;
- }
- return false;
- }
- return false;
- }
- }
-
- private void Start()
- {
- tfui = GetComponent<ThronefallUIElement>();
- tfui.onApply.AddListener(PlayApply);
- tfui.onSelectionStateChange.AddListener(PlaySelect);
- if (selected && playOnColdSelect)
- {
- PlaySelect();
- }
- }
-
- private void PlayApply()
- {
- ThronefallAudioManager.Oneshot(onApply);
- }
-
- private void PlaySelect()
- {
- if (selected)
- {
- ThronefallAudioManager.Oneshot(onSelect);
- }
- }
-}
diff --git a/GameCode/TFUIBlockoutElement.cs b/GameCode/TFUIBlockoutElement.cs
deleted file mode 100644
index a0150ad..0000000
--- a/GameCode/TFUIBlockoutElement.cs
+++ /dev/null
@@ -1,44 +0,0 @@
-using System;
-
-public class TFUIBlockoutElement : ThronefallUIElement
-{
- public ThronefallUIElement target;
-
- private void OnEnable()
- {
- botNav = target.botNav;
- topNav = target.topNav;
- rightNav = target.rightNav;
- leftNav = target.leftNav;
- }
-
- protected override void OnApply()
- {
- target.Apply();
- }
-
- protected override void OnClear()
- {
- target.Clear();
- }
-
- protected override void OnFocus()
- {
- target.Focus();
- }
-
- protected override void OnFocusAndSelect()
- {
- target.FocusAndSelect();
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- throw new NotImplementedException();
- }
-
- protected override void OnSelect()
- {
- target.Select();
- }
-}
diff --git a/GameCode/TFUICheckboxMouseCatcher.cs b/GameCode/TFUICheckboxMouseCatcher.cs
deleted file mode 100644
index 0fe58cb..0000000
--- a/GameCode/TFUICheckboxMouseCatcher.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using MPUIKIT;
-using UnityEngine;
-
-public class TFUICheckboxMouseCatcher : ThronefallUIElement
-{
- public Checkbox target;
-
- public MPImageBasic targetGraphic;
-
- public Color defaultColor;
-
- public Color highlightColor;
-
- protected override void OnApply()
- {
- target.Toggle();
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnClear()
- {
- targetGraphic.color = defaultColor;
- }
-
- protected override void OnFocus()
- {
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnFocusAndSelect()
- {
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- }
-
- protected override void OnSelect()
- {
- targetGraphic.color = highlightColor;
- }
-}
diff --git a/GameCode/TFUIEnumMouseCatcher.cs b/GameCode/TFUIEnumMouseCatcher.cs
deleted file mode 100644
index e46eb62..0000000
--- a/GameCode/TFUIEnumMouseCatcher.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class TFUIEnumMouseCatcher : ThronefallUIElement
-{
- public List<ThronefallUIElement> focusWhitelist = new List<ThronefallUIElement>();
-
- public GameObject buttons;
-
- private UIFrame targetFrame;
-
- protected override void OnApply()
- {
- }
-
- protected override void OnClear()
- {
- }
-
- protected override void OnFocus()
- {
- buttons.SetActive(value: true);
- targetFrame.onNewFocus.AddListener(ListenForUnfocus);
- }
-
- protected override void OnFocusAndSelect()
- {
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- }
-
- protected override void OnSelect()
- {
- }
-
- private void Start()
- {
- targetFrame = GetComponentInParent<UIFrame>();
- }
-
- private void ListenForUnfocus()
- {
- if (!(targetFrame.CurrentFocus == this) && !focusWhitelist.Contains(targetFrame.CurrentFocus))
- {
- buttons.SetActive(value: false);
- targetFrame.onNewFocus.RemoveListener(ListenForUnfocus);
- }
- }
-}
diff --git a/GameCode/TFUIEnumSelectorButton.cs b/GameCode/TFUIEnumSelectorButton.cs
deleted file mode 100644
index c758c11..0000000
--- a/GameCode/TFUIEnumSelectorButton.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using MPUIKIT;
-using UnityEngine;
-
-public class TFUIEnumSelectorButton : ThronefallUIElement
-{
- public MPImage targetGraphic;
-
- public Color defaultColor;
-
- public Color highlightColor;
-
- protected override void OnApply()
- {
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnClear()
- {
- targetGraphic.color = defaultColor;
- }
-
- protected override void OnFocus()
- {
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnFocusAndSelect()
- {
- targetGraphic.color = highlightColor;
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- }
-
- protected override void OnSelect()
- {
- targetGraphic.color = highlightColor;
- }
-}
diff --git a/GameCode/TFUIEquippable.cs b/GameCode/TFUIEquippable.cs
deleted file mode 100644
index bb74692..0000000
--- a/GameCode/TFUIEquippable.cs
+++ /dev/null
@@ -1,307 +0,0 @@
-using System;
-using MPUIKIT;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class TFUIEquippable : ThronefallUIElement
-{
- [Serializable]
- public class Style
- {
- public float scale = 1f;
-
- public Color outlineColor;
-
- public AnimationCurve animationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float animationDuration = 0.5f;
-
- public Style(Color outlineColor, AnimationCurve animationCurve, float animationDuration, float scale)
- {
- this.scale = scale;
- this.outlineColor = outlineColor;
- this.animationCurve = animationCurve;
- this.animationDuration = animationDuration;
- }
- }
-
- public class Animation
- {
- public TFUIEquippable target;
-
- public Style startStyle;
-
- public Style endStyle;
-
- public float clock;
-
- public Animation(Style startStyle, Style endStyle, TFUIEquippable target)
- {
- this.startStyle = startStyle;
- this.endStyle = endStyle;
- this.target = target;
- target.ApplyStyle(startStyle);
- target.currentAnimation = this;
- }
-
- public void Tick()
- {
- clock += Time.unscaledDeltaTime;
- float num = Mathf.InverseLerp(0f, endStyle.animationDuration, clock);
- float t = endStyle.animationCurve.Evaluate(num);
- target.backgroundImg.OutlineColor = Color.Lerp(startStyle.outlineColor, endStyle.outlineColor, t);
- target.backgroundImg.transform.localScale = Vector3.one * Mathf.LerpUnclamped(startStyle.scale, endStyle.scale, t);
- if (num >= 1f)
- {
- target.ApplyStyle(endStyle);
- target.currentAnimation = null;
- }
- }
- }
-
- [SerializeField]
- private Color weaponBgColor;
-
- [SerializeField]
- private Color perkBgColor;
-
- [SerializeField]
- private Color mutatorBgColor;
-
- [SerializeField]
- private Color lockedBgColor;
-
- [SerializeField]
- private Color lockedOutlineColor;
-
- [SerializeField]
- private Color weaponHighlightColor;
-
- [SerializeField]
- private Color perkHightlightColor;
-
- [SerializeField]
- private Color mutatorHighlightColor;
-
- [SerializeField]
- private Color highlightIconColor;
-
- [SerializeField]
- private MPImageBasic backgroundImg;
-
- [SerializeField]
- private Image iconImg;
-
- [SerializeField]
- private Sprite lockIcon;
-
- public AnimationCurve defaultAnimationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float defaultAnimationTime = 0.3f;
-
- public Style focussedStyle;
-
- public Style selectedStyle;
-
- public Style focussedAndSelectedStyle;
-
- private Style defaultStyle;
-
- private bool defaultStyleInitialized;
-
- private bool selectedForLoadout;
-
- private Animation currentAnimation;
-
- private Equippable equippableData;
-
- private Color highlightBGColor;
-
- private Color defaultBGColor;
-
- private Color defaultIconColor;
-
- private bool locked;
-
- public Equippable Data => equippableData;
-
- private bool isWeapon => equippableData is EquippableWeapon;
-
- private bool isPerk => equippableData is EquippablePerk;
-
- private bool isMutator => equippableData is EquippableMutation;
-
- public bool Locked => locked;
-
- public Image IconImg => iconImg;
-
- public Color GetBackgroundColor
- {
- get
- {
- if (!selectedForLoadout)
- {
- return defaultBGColor;
- }
- return highlightBGColor;
- }
- }
-
- public Color GetIconColor
- {
- get
- {
- if (!selectedForLoadout)
- {
- return defaultIconColor;
- }
- return highlightIconColor;
- }
- }
-
- private void Update()
- {
- if (currentAnimation != null)
- {
- currentAnimation.Tick();
- }
- }
-
- protected override void OnApply()
- {
- }
-
- protected override void OnClear()
- {
- new Animation(GetStyle(previousState), defaultStyle, this);
- }
-
- protected override void OnFocus()
- {
- new Animation(GetStyle(previousState), focussedStyle, this);
- }
-
- protected override void OnSelect()
- {
- new Animation(GetStyle(previousState), selectedStyle, this);
- }
-
- protected override void OnFocusAndSelect()
- {
- new Animation(GetStyle(previousState), focussedAndSelectedStyle, this);
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- currentAnimation = null;
- ApplyStyle(GetStyle(selectionState));
- }
-
- protected Style GetStyle(SelectionState state)
- {
- if (!defaultStyleInitialized)
- {
- InitializeDefaultStyle();
- }
- return state switch
- {
- SelectionState.Default => defaultStyle,
- SelectionState.Focussed => focussedStyle,
- SelectionState.Selected => selectedStyle,
- SelectionState.FocussedAndSelected => focussedAndSelectedStyle,
- _ => defaultStyle,
- };
- }
-
- private void ApplyStyle(Style style)
- {
- backgroundImg.OutlineColor = style.outlineColor;
- backgroundImg.transform.localScale = Vector3.one * style.scale;
- }
-
- private void InitializeDefaultStyle()
- {
- defaultStyle = new Style(backgroundImg.OutlineColor, defaultAnimationCurve, defaultAnimationTime, 1f);
- defaultStyleInitialized = true;
- }
-
- public void SetData(Equippable e)
- {
- equippableData = e;
- bool flag = PerkManager.instance.UnlockedEquippables.Contains(e);
- bool flag2 = LevelInteractor.lastActivatedLevelInteractor.HasFixedLoadout && !LevelInteractor.lastActivatedLevelInteractor.fixedLoadout.Contains(e);
- if (flag && !flag2)
- {
- iconImg.sprite = e.icon;
- if (isWeapon)
- {
- backgroundImg.color = weaponBgColor;
- highlightBGColor = weaponHighlightColor;
- }
- if (isPerk)
- {
- backgroundImg.color = perkBgColor;
- highlightBGColor = perkHightlightColor;
- }
- if (isMutator)
- {
- backgroundImg.color = mutatorBgColor;
- highlightBGColor = mutatorHighlightColor;
- }
- }
- else if (flag && flag2)
- {
- iconImg.sprite = e.icon;
- iconImg.color = lockedOutlineColor;
- backgroundImg.color = lockedBgColor;
- backgroundImg.OutlineColor = lockedOutlineColor;
- }
- else
- {
- iconImg.sprite = lockIcon;
- iconImg.color = lockedOutlineColor;
- backgroundImg.color = lockedBgColor;
- backgroundImg.OutlineColor = lockedOutlineColor;
- locked = true;
- }
- defaultBGColor = backgroundImg.color;
- defaultIconColor = iconImg.color;
- }
-
- public void SetDataSimple(Equippable e)
- {
- equippableData = e;
- iconImg.sprite = e.icon;
- if (isWeapon)
- {
- backgroundImg.color = weaponBgColor;
- highlightBGColor = weaponHighlightColor;
- }
- if (isPerk)
- {
- backgroundImg.color = perkBgColor;
- highlightBGColor = perkHightlightColor;
- }
- if (isMutator)
- {
- backgroundImg.color = mutatorBgColor;
- highlightBGColor = mutatorHighlightColor;
- }
- defaultBGColor = backgroundImg.color;
- defaultIconColor = iconImg.color;
- }
-
- public void Pick()
- {
- backgroundImg.color = highlightBGColor;
- iconImg.color = highlightIconColor;
- selectedForLoadout = true;
- }
-
- public void UnPick()
- {
- backgroundImg.color = defaultBGColor;
- iconImg.color = defaultIconColor;
- selectedForLoadout = false;
- }
-}
diff --git a/GameCode/TFUISlider.cs b/GameCode/TFUISlider.cs
deleted file mode 100644
index f48ea9e..0000000
--- a/GameCode/TFUISlider.cs
+++ /dev/null
@@ -1,141 +0,0 @@
-using MPUIKIT;
-using Rewired;
-using TMPro;
-using UnityEngine;
-using UnityEngine.Events;
-
-public class TFUISlider : MonoBehaviour
-{
- public float minValue;
-
- public float maxValue = 1f;
-
- public float value = 1f;
-
- public float increments = 0.1f;
-
- public int displayFPPrecision = 1;
-
- public ThronefallUIElement target;
-
- public ThronefallUIElement.NavigationDirection increase;
-
- public ThronefallUIElement.NavigationDirection decrease = ThronefallUIElement.NavigationDirection.Left;
-
- public TextMeshProUGUI display;
-
- public GameObject knob;
-
- public GameObject tooltip;
-
- public RectTransform backgroundRect;
-
- public RectTransform fillRect;
-
- public MPImageBasic fillImg;
-
- public MPImageBasic knobImg;
-
- public UnityEvent onChange;
-
- public UnityEvent onNavigate;
-
- private Player input;
-
- private void Start()
- {
- target.onEmptyNavigate.AddListener(Navigate);
- target.onSelectionStateChange.AddListener(ToggleSelectionUI);
- input = ReInput.players.GetPlayer(0);
- }
-
- private void OnEnable()
- {
- ToggleSelectionUI();
- }
-
- private void UpdateDisplay()
- {
- fillRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, backgroundRect.sizeDelta.x * Mathf.InverseLerp(minValue, maxValue, value));
- display.text = value.ToString("F" + displayFPPrecision);
- }
-
- public void Navigate(ThronefallUIElement.NavigationDirection direction)
- {
- onNavigate.Invoke();
- if (direction == increase)
- {
- value += increments;
- }
- else if (direction == decrease)
- {
- value -= increments;
- }
- if (value > maxValue)
- {
- value = maxValue;
- }
- if (value < minValue)
- {
- value = minValue;
- }
- UpdateDisplay();
- onChange.Invoke();
- }
-
- public void Increase()
- {
- Navigate(increase);
- }
-
- public void Decrease()
- {
- Navigate(decrease);
- }
-
- public void OnTFUIStateChange()
- {
- }
-
- public void SetValue(float v)
- {
- value = v;
- if (value > maxValue)
- {
- value = maxValue;
- }
- if (value < minValue)
- {
- value = minValue;
- }
- UpdateDisplay();
- }
-
- public void SetValueByScreenPoint(Vector2 point)
- {
- RectTransformUtility.ScreenPointToLocalPointInRectangle(fillRect, input.controllers.Mouse.screenPosition, null, out point);
- if (point.x < 0f)
- {
- point.x = 0f;
- }
- if (point.x > backgroundRect.sizeDelta.x)
- {
- point.x = backgroundRect.sizeDelta.x;
- }
- float t = Mathf.InverseLerp(0f, backgroundRect.sizeDelta.x, point.x);
- int num = Mathf.RoundToInt(Mathf.Lerp(minValue, maxValue, t) / increments);
- value = increments * (float)num;
- UpdateDisplay();
- onChange.Invoke();
- }
-
- private void ToggleSelectionUI()
- {
- bool active = target.CurrentState == ThronefallUIElement.SelectionState.FocussedAndSelected || target.CurrentState == ThronefallUIElement.SelectionState.Selected;
- knob.SetActive(active);
- if (tooltip != null)
- {
- tooltip.SetActive(active);
- }
- }
-}
diff --git a/GameCode/TFUISliderDragArea.cs b/GameCode/TFUISliderDragArea.cs
deleted file mode 100644
index b19b0be..0000000
--- a/GameCode/TFUISliderDragArea.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using MoreMountains.Feedbacks;
-using UnityEngine;
-
-public class TFUISliderDragArea : ThronefallUIElement
-{
- public TFUISlider target;
-
- public Color dragColor;
-
- public MMF_Player onStartDrag;
-
- public MMF_Player onEndDrag;
-
- private Color defaultColor;
-
- private bool colorInitialized;
-
- private bool delayedDisable;
-
- private bool inDrag;
-
- private float afterDragCounter;
-
- public override bool dragable => true;
-
- protected override void OnApply()
- {
- }
-
- private void Update()
- {
- if (!delayedDisable || inDrag)
- {
- return;
- }
- afterDragCounter += Time.unscaledDeltaTime;
- if (afterDragCounter > 0.35f)
- {
- delayedDisable = false;
- target.knob.SetActive(value: false);
- if ((bool)target.tooltip)
- {
- target.tooltip.SetActive(value: false);
- }
- }
- }
-
- protected override void OnClear()
- {
- if (!inDrag)
- {
- target.knob.SetActive(value: false);
- if ((bool)target.tooltip)
- {
- target.tooltip.SetActive(value: false);
- }
- }
- else
- {
- delayedDisable = true;
- afterDragCounter = 0f;
- }
- }
-
- protected override void OnFocus()
- {
- delayedDisable = false;
- target.knob.SetActive(value: true);
- if ((bool)target.tooltip)
- {
- target.tooltip.SetActive(value: true);
- }
- }
-
- protected override void OnFocusAndSelect()
- {
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- }
-
- protected override void OnSelect()
- {
- }
-
- public override void OnDragStart()
- {
- inDrag = true;
- onStartDrag.PlayFeedbacks();
- if (!colorInitialized)
- {
- InitColor();
- }
- target.fillImg.color = dragColor;
- target.knobImg.color = dragColor;
- }
-
- public override void OnDrag(Vector2 mousePosition)
- {
- target.SetValueByScreenPoint(mousePosition);
- }
-
- public override void OnDragEnd()
- {
- onEndDrag.PlayFeedbacks();
- target.fillImg.color = defaultColor;
- target.knobImg.color = defaultColor;
- inDrag = false;
- }
-
- private void InitColor()
- {
- defaultColor = target.fillImg.color;
- colorInitialized = true;
- }
-
- private void OnEnable()
- {
- if (!colorInitialized)
- {
- InitColor();
- }
- target.fillImg.color = defaultColor;
- inDrag = false;
- }
-}
diff --git a/GameCode/TFUITextButton.cs b/GameCode/TFUITextButton.cs
deleted file mode 100644
index 31205d1..0000000
--- a/GameCode/TFUITextButton.cs
+++ /dev/null
@@ -1,195 +0,0 @@
-using System;
-using I2.Loc;
-using TMPro;
-using UnityEngine;
-
-[RequireComponent(typeof(TextMeshProUGUI))]
-public class TFUITextButton : ThronefallUIElement
-{
- [Serializable]
- public class Style
- {
- public Color color = Color.white;
-
- public float fontSize = 30f;
-
- public string prefix;
-
- public string suffix;
-
- public TMP_FontAsset font;
-
- public AnimationCurve animationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float animationDuration = 0.5f;
-
- public Style(Color color, float fontSize, TMP_FontAsset font, AnimationCurve animationCurve, float animationDuration)
- {
- this.color = color;
- this.fontSize = fontSize;
- this.font = font;
- this.animationCurve = animationCurve;
- this.animationDuration = animationDuration;
- }
- }
-
- public class Animation
- {
- public TFUITextButton target;
-
- public Style startStyle;
-
- public Style endStyle;
-
- public float clock;
-
- public Animation(Style startStyle, Style endStyle, TFUITextButton target)
- {
- this.startStyle = startStyle;
- this.endStyle = endStyle;
- this.target = target;
- target.ApplyStyle(startStyle);
- target.targetText.font = endStyle.font;
- target.targetText.text = endStyle.prefix + target.originalString + endStyle.suffix;
- target.currentAnimation = this;
- }
-
- public void Tick()
- {
- clock += Time.unscaledDeltaTime;
- float num = Mathf.InverseLerp(0f, endStyle.animationDuration, clock);
- float t = endStyle.animationCurve.Evaluate(num);
- target.targetText.color = Color.Lerp(startStyle.color, endStyle.color, t);
- target.targetText.fontSize = Mathf.LerpUnclamped(startStyle.fontSize, endStyle.fontSize, t);
- if (num >= 1f)
- {
- target.ApplyStyle(endStyle);
- target.currentAnimation = null;
- }
- }
- }
-
- private Style defaultStyle;
-
- private bool defaultStyleInitialized;
-
- public AnimationCurve defaultAnimationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float defaultAnimationTime = 0.3f;
-
- public Style focussedStyle;
-
- public Style selectedStyle;
-
- public Style focussedAndSelectedStyle;
-
- public Style overrideStyle;
-
- public bool applyOverrideStyle;
-
- private TextMeshProUGUI targetText;
-
- private string originalString;
-
- private Animation currentAnimation;
-
- private Localize locComponent;
-
- private void Start()
- {
- locComponent = GetComponent<Localize>();
- if (locComponent != null)
- {
- locComponent.LocalizeEvent.AddListener(UpdateOriginalStringLocalized);
- }
- }
-
- private void Update()
- {
- if (currentAnimation != null)
- {
- currentAnimation.Tick();
- }
- }
-
- protected Style GetStyle(SelectionState state)
- {
- if (!defaultStyleInitialized)
- {
- InitializeDefaultStyle();
- }
- return state switch
- {
- SelectionState.Default => defaultStyle,
- SelectionState.Focussed => focussedStyle,
- SelectionState.Selected => selectedStyle,
- SelectionState.FocussedAndSelected => focussedAndSelectedStyle,
- _ => defaultStyle,
- };
- }
-
- protected override void OnApply()
- {
- }
-
- protected override void OnClear()
- {
- new Animation(GetStyle(previousState), applyOverrideStyle ? overrideStyle : defaultStyle, this);
- }
-
- protected override void OnFocus()
- {
- new Animation(GetStyle(previousState), applyOverrideStyle ? overrideStyle : focussedStyle, this);
- }
-
- protected override void OnSelect()
- {
- new Animation(GetStyle(previousState), applyOverrideStyle ? overrideStyle : selectedStyle, this);
- }
-
- protected override void OnFocusAndSelect()
- {
- new Animation(GetStyle(previousState), applyOverrideStyle ? overrideStyle : focussedAndSelectedStyle, this);
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- currentAnimation = null;
- ApplyStyle(GetStyle(selectionState));
- }
-
- private void ApplyStyle(Style style)
- {
- targetText.color = style.color;
- targetText.fontSize = style.fontSize;
- targetText.font = style.font;
- targetText.text = style.prefix + originalString + style.suffix;
- }
-
- private void InitializeDefaultStyle()
- {
- if (!defaultStyleInitialized)
- {
- targetText = GetComponent<TextMeshProUGUI>();
- UpdateOriginalStringLocalized();
- defaultStyle = new Style(targetText.color, targetText.fontSize, targetText.font, defaultAnimationCurve, defaultAnimationTime);
- defaultStyleInitialized = true;
- }
- }
-
- private void UpdateOriginalStringLocalized()
- {
- if (locComponent == null)
- {
- locComponent = GetComponent<Localize>();
- }
- if (locComponent == null)
- {
- originalString = targetText.text;
- }
- else
- {
- originalString = LocalizationManager.GetTranslation(locComponent.Term);
- }
- }
-}
diff --git a/GameCode/TFUIUpgradeChoice.cs b/GameCode/TFUIUpgradeChoice.cs
deleted file mode 100644
index ac4a246..0000000
--- a/GameCode/TFUIUpgradeChoice.cs
+++ /dev/null
@@ -1,203 +0,0 @@
-using System;
-using MPUIKIT;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class TFUIUpgradeChoice : ThronefallUIElement
-{
- [Serializable]
- public class Style
- {
- public float scale = 1f;
-
- public Color outlineColor;
-
- public Color bgColor;
-
- public AnimationCurve animationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float animationDuration = 0.5f;
-
- public Style(Color outlineColor, Color bgColor, AnimationCurve animationCurve, float animationDuration, float scale)
- {
- this.scale = scale;
- this.bgColor = bgColor;
- this.outlineColor = outlineColor;
- this.animationCurve = animationCurve;
- this.animationDuration = animationDuration;
- }
- }
-
- public class Animation
- {
- public TFUIUpgradeChoice target;
-
- public Style startStyle;
-
- public Style endStyle;
-
- public float clock;
-
- public Animation(Style startStyle, Style endStyle, TFUIUpgradeChoice target)
- {
- this.startStyle = startStyle;
- this.endStyle = endStyle;
- this.target = target;
- target.ApplyStyle(startStyle);
- target.currentAnimation = this;
- }
-
- public void Tick()
- {
- clock += Time.unscaledDeltaTime;
- float num = Mathf.InverseLerp(0f, endStyle.animationDuration, clock);
- float t = endStyle.animationCurve.Evaluate(num);
- target.iconImg.color = Color.Lerp(startStyle.outlineColor, endStyle.outlineColor, t);
- target.backgroundImg.color = Color.Lerp(startStyle.bgColor, endStyle.bgColor, t);
- target.backgroundImg.OutlineColor = Color.Lerp(startStyle.outlineColor, endStyle.outlineColor, t);
- target.backgroundImg.transform.localScale = Vector3.one * Mathf.LerpUnclamped(startStyle.scale, endStyle.scale, t);
- if (num >= 1f)
- {
- target.ApplyStyle(endStyle);
- target.currentAnimation = null;
- }
- }
- }
-
- [SerializeField]
- private Color lockedBgColor;
-
- [SerializeField]
- private Color lockedOutlineColor;
-
- [SerializeField]
- private MPImageBasic backgroundImg;
-
- [SerializeField]
- private Image iconImg;
-
- [SerializeField]
- private Sprite lockIcon;
-
- public AnimationCurve defaultAnimationCurve = AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
-
- public float defaultAnimationTime = 0.3f;
-
- public Style focussedStyle;
-
- public Style selectedStyle;
-
- public Style focussedAndSelectedStyle;
-
- private Style defaultStyle;
-
- private bool defaultStyleInitialized;
-
- private Animation currentAnimation;
-
- private Choice choiceData;
-
- private Color defaultBgColor;
-
- private Color defaultIconColor;
-
- private bool locked;
-
- public Choice Data => choiceData;
-
- public bool Locked => locked;
-
- public Image IconImg => iconImg;
-
- private void Update()
- {
- if (currentAnimation != null)
- {
- currentAnimation.Tick();
- }
- }
-
- protected override void OnApply()
- {
- }
-
- protected override void OnClear()
- {
- new Animation(GetStyle(previousState), defaultStyle, this);
- }
-
- protected override void OnFocus()
- {
- new Animation(GetStyle(previousState), focussedStyle, this);
- }
-
- protected override void OnSelect()
- {
- new Animation(GetStyle(previousState), selectedStyle, this);
- }
-
- protected override void OnFocusAndSelect()
- {
- new Animation(GetStyle(previousState), focussedAndSelectedStyle, this);
- }
-
- protected override void OnHardStateSet(SelectionState selectionState)
- {
- currentAnimation = null;
- ApplyStyle(GetStyle(selectionState));
- }
-
- protected Style GetStyle(SelectionState state)
- {
- if (!defaultStyleInitialized)
- {
- InitializeDefaultStyle();
- }
- return state switch
- {
- SelectionState.Default => defaultStyle,
- SelectionState.Focussed => focussedStyle,
- SelectionState.Selected => selectedStyle,
- SelectionState.FocussedAndSelected => focussedAndSelectedStyle,
- _ => defaultStyle,
- };
- }
-
- private void ApplyStyle(Style style)
- {
- iconImg.color = style.outlineColor;
- backgroundImg.color = style.bgColor;
- backgroundImg.OutlineColor = style.outlineColor;
- backgroundImg.transform.localScale = Vector3.one * style.scale;
- }
-
- private void InitializeDefaultStyle()
- {
- defaultBgColor = backgroundImg.color;
- defaultIconColor = iconImg.color;
- defaultStyle = new Style(backgroundImg.OutlineColor, backgroundImg.color, defaultAnimationCurve, defaultAnimationTime, 1f);
- defaultStyleInitialized = true;
- }
-
- public void SetData(Choice _choice)
- {
- choiceData = _choice;
- bool flag = true;
- if (_choice.requiresUnlocked != null && !PerkManager.instance.UnlockedEquippables.Contains(_choice.requiresUnlocked))
- {
- flag = false;
- }
- if (flag)
- {
- iconImg.sprite = _choice.icon;
- return;
- }
- iconImg.sprite = lockIcon;
- iconImg.color = lockedOutlineColor;
- backgroundImg.color = lockedBgColor;
- backgroundImg.OutlineColor = lockedOutlineColor;
- selectedStyle.bgColor = lockedBgColor;
- selectedStyle.outlineColor = lockedOutlineColor;
- locked = true;
- }
-}
diff --git a/GameCode/TagManager.cs b/GameCode/TagManager.cs
deleted file mode 100644
index 2c4c835..0000000
--- a/GameCode/TagManager.cs
+++ /dev/null
@@ -1,223 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class TagManager : MonoBehaviour
-{
- public enum ETag
- {
- PlayerOwned,
- EnemyOwned,
- Player,
- CastleCenter,
- MeeleFighter,
- RangedFighter,
- Flying,
- PlayerUnit,
- Building,
- SiegeWeapon,
- AUTO_Alive,
- AUTO_KnockedOutAndHealOnDawn,
- Wall,
- InfrastructureEconomy,
- TakesReducedDamageFromPlayerAttacks,
- PracticeTargets,
- FastMoving,
- ArmoredAgainstRanged,
- VulnerableVsRanged,
- Monster,
- House,
- WallOrTower,
- AUTO_Commanded,
- TakesIncreasedDamageFromTowers,
- Tower,
- AUTO_NoReviveNextMorning,
- PlayerOwnedPriorityTarget,
- BlockableEnemyProjectile,
- Boss,
- UselessWallThatDoesNotBlockPath
- }
-
- public static TagManager instance;
-
- [SerializeField]
- private Dictionary<ETag, List<TaggedObject>> dictonaryOfListsOfTaggedObjects;
-
- private List<TaggedObject> tempTaggedObjectList = new List<TaggedObject>();
-
- private List<TaggedObject> bufferedPlayerUnits = new List<TaggedObject>();
-
- private List<TaggedObject> bufferedEnemyUnits = new List<TaggedObject>();
-
- private List<TaggedObject> bufferedPlayers = new List<TaggedObject>();
-
- public List<BuildingInteractor> playerBuildingInteractors = new List<BuildingInteractor>();
-
- public List<Coin> freeCoins = new List<Coin>();
-
- public List<Coin> coins = new List<Coin>();
-
- public IReadOnlyList<TaggedObject> PlayerUnits => bufferedPlayerUnits.AsReadOnly();
-
- public IReadOnlyList<TaggedObject> EnemyUnits => bufferedEnemyUnits.AsReadOnly();
-
- public IReadOnlyList<TaggedObject> Players => bufferedPlayers.AsReadOnly();
-
- private void OnEnable()
- {
- instance = this;
- dictonaryOfListsOfTaggedObjects = new Dictionary<ETag, List<TaggedObject>>();
- for (int i = 0; i < Enum.GetValues(typeof(ETag)).Length; i++)
- {
- dictonaryOfListsOfTaggedObjects.Add((ETag)i, new List<TaggedObject>());
- }
- }
-
- public void AddTaggedObject(TaggedObject _taggedObject)
- {
- foreach (ETag tag in _taggedObject.Tags)
- {
- AddTag(_taggedObject, tag);
- if (tag == ETag.EnemyOwned)
- {
- bufferedEnemyUnits.Add(_taggedObject);
- }
- if (tag == ETag.PlayerUnit)
- {
- bufferedPlayerUnits.Add(_taggedObject);
- }
- if (tag == ETag.Player)
- {
- bufferedPlayers.Add(_taggedObject);
- }
- }
- }
-
- public void RemoveTaggedObject(TaggedObject _taggedObject)
- {
- if (bufferedEnemyUnits.Contains(_taggedObject))
- {
- bufferedEnemyUnits.Remove(_taggedObject);
- }
- if (bufferedPlayerUnits.Contains(_taggedObject))
- {
- bufferedPlayerUnits.Remove(_taggedObject);
- }
- foreach (ETag tag in _taggedObject.Tags)
- {
- RemoveTag(_taggedObject, tag);
- }
- }
-
- public void AddTag(TaggedObject _taggedObject, ETag _tag)
- {
- List<TaggedObject> list = dictonaryOfListsOfTaggedObjects[_tag];
- if (!list.Contains(_taggedObject))
- {
- list.Add(_taggedObject);
- }
- }
-
- public void RemoveTag(TaggedObject _taggedObject, ETag _tag)
- {
- List<TaggedObject> list = dictonaryOfListsOfTaggedObjects[_tag];
- if (list.Contains(_taggedObject))
- {
- list.Remove(_taggedObject);
- }
- }
-
- public int CountObjectsWithTag(ETag _tag)
- {
- return dictonaryOfListsOfTaggedObjects[_tag].Count;
- }
-
- public void FindAllTaggedObjectsWithTags(List<TaggedObject> _listToPolulate, List<ETag> _mustHaveTags, List<ETag> _mayNotHaveTags)
- {
- _listToPolulate.Clear();
- if (_mustHaveTags.Count <= 0)
- {
- return;
- }
- List<TaggedObject> list = null;
- int num = int.MaxValue;
- for (int i = 0; i < _mustHaveTags.Count; i++)
- {
- List<TaggedObject> list2 = dictonaryOfListsOfTaggedObjects[_mustHaveTags[i]];
- if (list2.Count < num)
- {
- list = list2;
- num = list2.Count;
- }
- }
- if (list.Count == 0)
- {
- return;
- }
- for (int j = 0; j < list.Count; j++)
- {
- TaggedObject taggedObject = list[j];
- List<ETag> tags = taggedObject.Tags;
- bool flag = true;
- if (_mustHaveTags != null)
- {
- for (int k = 0; k < _mustHaveTags.Count; k++)
- {
- if (!tags.Contains(_mustHaveTags[k]))
- {
- flag = false;
- break;
- }
- }
- }
- if (_mayNotHaveTags != null)
- {
- for (int l = 0; l < _mayNotHaveTags.Count; l++)
- {
- if (tags.Contains(_mayNotHaveTags[l]))
- {
- flag = false;
- break;
- }
- }
- }
- if (flag)
- {
- _listToPolulate.Add(taggedObject);
- }
- }
- }
-
- public TaggedObject FindClosestTaggedObjectWithTags(Vector3 _position, List<ETag> _mustHaveTags, List<ETag> _mayNotHaveTags)
- {
- tempTaggedObjectList.Clear();
- FindAllTaggedObjectsWithTags(tempTaggedObjectList, _mustHaveTags, _mayNotHaveTags);
- TaggedObject result = null;
- float num = float.MaxValue;
- for (int i = 0; i < tempTaggedObjectList.Count; i++)
- {
- TaggedObject taggedObject = tempTaggedObjectList[i];
- float num2 = MeasureDistanceToTaggedObject(taggedObject, _position);
- if (num2 < num)
- {
- num = num2;
- result = taggedObject;
- }
- }
- return result;
- }
-
- public float MeasureDistanceToTaggedObject(TaggedObject _taggedObj, Vector3 _pos)
- {
- if (_taggedObj.colliderForBigOjectsToMeasureDistance != null)
- {
- return (_taggedObj.colliderForBigOjectsToMeasureDistance.ClosestPoint(_pos) - _pos).magnitude;
- }
- return (_taggedObj.transform.position - _pos).magnitude;
- }
-
- public int CountAllTaggedObjectsWithTag(ETag _mustHaveTag)
- {
- return dictonaryOfListsOfTaggedObjects[_mustHaveTag].Count;
- }
-}
diff --git a/GameCode/TaggedObject.cs b/GameCode/TaggedObject.cs
deleted file mode 100644
index d6bede0..0000000
--- a/GameCode/TaggedObject.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class TaggedObject : MonoBehaviour
-{
- [SerializeField]
- private List<TagManager.ETag> tags = new List<TagManager.ETag>();
-
- private TagManager tagManager;
-
- private Hp hp;
-
- public Collider colliderForBigOjectsToMeasureDistance;
-
- public List<TagManager.ETag> Tags => tags;
-
- public Hp Hp => hp;
-
- private void Start()
- {
- hp = GetComponent<Hp>();
- }
-
- private void OnEnable()
- {
- if (tagManager == null)
- {
- tagManager = TagManager.instance;
- }
- tagManager.AddTaggedObject(this);
- }
-
- private void OnDisable()
- {
- if (tagManager == null)
- {
- tagManager = TagManager.instance;
- }
- tagManager.RemoveTaggedObject(this);
- }
-
- public void AddTag(TagManager.ETag _tag)
- {
- if (!tags.Contains(_tag))
- {
- tags.Add(_tag);
- tagManager.AddTag(this, _tag);
- }
- }
-
- public void RemoveTag(TagManager.ETag _tag)
- {
- if (tags.Contains(_tag))
- {
- tags.Remove(_tag);
- tagManager.RemoveTag(this, _tag);
- }
- }
-}
diff --git a/GameCode/TargetPriority.cs b/GameCode/TargetPriority.cs
deleted file mode 100644
index 55672c0..0000000
--- a/GameCode/TargetPriority.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-[Serializable]
-public class TargetPriority
-{
- public List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();
-
- public List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
-
- public float range;
-
- private List<TaggedObject> allTaggedObjects = new List<TaggedObject>();
-
- private TagManager tagManager;
-
- public TaggedObject FindClosestTaggedObject(Vector3 _position)
- {
- TaggedObject taggedObject = TagManager.instance.FindClosestTaggedObjectWithTags(_position, mustHaveTags, mayNotHaveTags);
- if (taggedObject == null)
- {
- return null;
- }
- float num = ((!(taggedObject.colliderForBigOjectsToMeasureDistance != null)) ? (taggedObject.transform.position - _position).magnitude : (taggedObject.colliderForBigOjectsToMeasureDistance.ClosestPoint(_position) - _position).magnitude);
- if (num <= range)
- {
- return taggedObject;
- }
- return null;
- }
-
- public TaggedObject FindHighestHealthObjectInRange(Vector3 _position)
- {
- tagManager = TagManager.instance;
- allTaggedObjects.Clear();
- tagManager.FindAllTaggedObjectsWithTags(allTaggedObjects, mustHaveTags, mayNotHaveTags);
- TaggedObject result = null;
- float num = 0f;
- for (int i = 0; i < allTaggedObjects.Count; i++)
- {
- if (!(tagManager.MeasureDistanceToTaggedObject(allTaggedObjects[i], _position) > range))
- {
- Hp hp = allTaggedObjects[i].Hp;
- if (hp.HpValue > num)
- {
- num = hp.HpValue;
- result = allTaggedObjects[i];
- }
- }
- }
- return result;
- }
-
- public TaggedObject FindLowestHealthObjectInRange(Vector3 _position, bool _excludeFullHealthTargets = true)
- {
- tagManager = TagManager.instance;
- allTaggedObjects.Clear();
- tagManager.FindAllTaggedObjectsWithTags(allTaggedObjects, mustHaveTags, mayNotHaveTags);
- TaggedObject result = null;
- float num = 100f;
- for (int i = 0; i < allTaggedObjects.Count; i++)
- {
- if (!(tagManager.MeasureDistanceToTaggedObject(allTaggedObjects[i], _position) > range))
- {
- Hp hp = allTaggedObjects[i].Hp;
- if ((!_excludeFullHealthTargets || !(hp.HpPercentage >= 1f)) && hp.HpPercentage < num)
- {
- num = hp.HpPercentage;
- result = allTaggedObjects[i];
- }
- }
- }
- return result;
- }
-
- public TaggedObject FindTaggedObject(Vector3 _position, out Vector3 _outPosition)
- {
- _outPosition = Vector3.zero;
- TaggedObject taggedObject = TagManager.instance.FindClosestTaggedObjectWithTags(_position, mustHaveTags, mayNotHaveTags);
- if (taggedObject == null)
- {
- return null;
- }
- float magnitude;
- if (taggedObject.colliderForBigOjectsToMeasureDistance != null)
- {
- _outPosition = taggedObject.colliderForBigOjectsToMeasureDistance.ClosestPoint(_position);
- magnitude = (_outPosition - _position).magnitude;
- }
- else
- {
- _outPosition = taggedObject.transform.position;
- magnitude = (_outPosition - _position).magnitude;
- }
- if (magnitude <= range)
- {
- return taggedObject;
- }
- return null;
- }
-
- public TaggedObject FindTaggedObjectCloseToHome(Vector3 _position, Vector3 _home, float _homeRange, out Vector3 _outPosition)
- {
- _outPosition = Vector3.zero;
- TaggedObject taggedObject = TagManager.instance.FindClosestTaggedObjectWithTags(_position, mustHaveTags, mayNotHaveTags);
- if (taggedObject == null)
- {
- return null;
- }
- if (taggedObject.colliderForBigOjectsToMeasureDistance != null)
- {
- _outPosition = taggedObject.colliderForBigOjectsToMeasureDistance.ClosestPoint(_position);
- }
- else
- {
- _outPosition = taggedObject.transform.position;
- }
- float magnitude = (_outPosition - _position).magnitude;
- float magnitude2 = (_outPosition - _home).magnitude;
- if (magnitude <= range || magnitude2 <= _homeRange)
- {
- return taggedObject;
- }
- return null;
- }
-}
diff --git a/GameCode/TextBackgroundFitter.cs b/GameCode/TextBackgroundFitter.cs
deleted file mode 100644
index 34a9e73..0000000
--- a/GameCode/TextBackgroundFitter.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-
-public class TextBackgroundFitter : MonoBehaviour
-{
- private RectTransform ownRT;
-
- public RectTransform target;
-
- public ContentSizeFitter csf;
-
- public float horizontalPaddingPerSide;
-
- public float verticalPaddingPerSide;
-
- private void OnEnable()
- {
- ownRT = GetComponent<RectTransform>();
- csf.enabled = false;
- csf.enabled = true;
- LayoutRebuilder.ForceRebuildLayoutImmediate(target);
- ownRT.sizeDelta = new Vector2(target.sizeDelta.x + horizontalPaddingPerSide * 2f, target.sizeDelta.y + verticalPaddingPerSide * 2f);
- }
-}
diff --git a/GameCode/Thronefall.csproj b/GameCode/Thronefall.csproj
deleted file mode 100644
index b89e7bc..0000000
--- a/GameCode/Thronefall.csproj
+++ /dev/null
@@ -1,344 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
- <PropertyGroup>
- <AssemblyName>Assembly-CSharp</AssemblyName>
- <GenerateAssemblyInfo>False</GenerateAssemblyInfo>
- <TargetFramework>netstandard2.1</TargetFramework>
- </PropertyGroup>
- <PropertyGroup>
- <LangVersion>11.0</LangVersion>
- <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
- </PropertyGroup>
- <PropertyGroup />
- <ItemGroup>
- <Reference Include="AstarPathfindingProject">
- <HintPath>..\Game\Thronefall_Data\Managed\AstarPathfindingProject.dll</HintPath>
- </Reference>
- <Reference Include="com.rlabrecque.steamworks.net">
- <HintPath>..\Game\Thronefall_Data\Managed\com.rlabrecque.steamworks.net.dll</HintPath>
- </Reference>
- <Reference Include="Lofelt.NiceVibrations">
- <HintPath>..\Game\Thronefall_Data\Managed\Lofelt.NiceVibrations.dll</HintPath>
- </Reference>
- <Reference Include="Lofelt.NiceVibrations.Demo">
- <HintPath>..\Game\Thronefall_Data\Managed\Lofelt.NiceVibrations.Demo.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.Cinemachine">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.Cinemachine.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.HDRP">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.HDRP.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.MMTools">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.MMTools.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.NiceVibrations">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.NiceVibrations.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.PostProcessing">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.PostProcessing.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.TextMeshPro">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.TextMeshPro.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Feedbacks.URP">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Feedbacks.URP.dll</HintPath>
- </Reference>
- <Reference Include="MoreMountains.Tools">
- <HintPath>..\Game\Thronefall_Data\Managed\MoreMountains.Tools.dll</HintPath>
- </Reference>
- <Reference Include="MPUIKit">
- <HintPath>..\Game\Thronefall_Data\Managed\MPUIKit.dll</HintPath>
- </Reference>
- <Reference Include="Pathfinding.ClipperLib">
- <HintPath>..\Game\Thronefall_Data\Managed\Pathfinding.ClipperLib.dll</HintPath>
- </Reference>
- <Reference Include="Pathfinding.Ionic.Zip.Reduced">
- <HintPath>..\Game\Thronefall_Data\Managed\Pathfinding.Ionic.Zip.Reduced.dll</HintPath>
- </Reference>
- <Reference Include="Pathfinding.Poly2Tri">
- <HintPath>..\Game\Thronefall_Data\Managed\Pathfinding.Poly2Tri.dll</HintPath>
- </Reference>
- <Reference Include="Rewired_Core">
- <HintPath>..\Game\Thronefall_Data\Managed\Rewired_Core.dll</HintPath>
- </Reference>
- <Reference Include="Rewired_Windows">
- <HintPath>..\Game\Thronefall_Data\Managed\Rewired_Windows.dll</HintPath>
- </Reference>
- <Reference Include="Rewired_Windows_Functions">
- <HintPath>..\Game\Thronefall_Data\Managed\Rewired_Windows_Functions.dll</HintPath>
- </Reference>
- <Reference Include="ShapesRuntime">
- <HintPath>..\Game\Thronefall_Data\Managed\ShapesRuntime.dll</HintPath>
- </Reference>
- <Reference Include="Unity.AI.Navigation">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.AI.Navigation.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Burst">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Burst.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Burst.Unsafe">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Burst.Unsafe.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Collections">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Collections.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Collections.LowLevel.ILSupport">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Collections.LowLevel.ILSupport.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Mathematics">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Mathematics.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Recorder">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Recorder.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Recorder.Base">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Recorder.Base.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipeline.Universal.ShaderLibrary">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipeline.Universal.ShaderLibrary.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipelines.Core.Runtime">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipelines.Core.Runtime.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipelines.Core.ShaderLibrary">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipelines.Core.ShaderLibrary.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipelines.Universal.Runtime">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipelines.Universal.Runtime.dll</HintPath>
- </Reference>
- <Reference Include="Unity.RenderPipelines.Universal.Shaders">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.RenderPipelines.Universal.Shaders.dll</HintPath>
- </Reference>
- <Reference Include="Unity.TextMeshPro">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.TextMeshPro.dll</HintPath>
- </Reference>
- <Reference Include="Unity.Timeline">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.Timeline.dll</HintPath>
- </Reference>
- <Reference Include="Unity.VisualScripting.Antlr3.Runtime">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.VisualScripting.Antlr3.Runtime.dll</HintPath>
- </Reference>
- <Reference Include="Unity.VisualScripting.Core">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.VisualScripting.Core.dll</HintPath>
- </Reference>
- <Reference Include="Unity.VisualScripting.Flow">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.VisualScripting.Flow.dll</HintPath>
- </Reference>
- <Reference Include="Unity.VisualScripting.State">
- <HintPath>..\Game\Thronefall_Data\Managed\Unity.VisualScripting.State.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AccessibilityModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AccessibilityModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AIModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AIModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AndroidJNIModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AndroidJNIModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AnimationModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AnimationModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ARModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ARModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AssetBundleModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AssetBundleModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.AudioModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.AudioModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ClothModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ClothModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ClusterInputModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ClusterInputModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ClusterRendererModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ClusterRendererModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ContentLoadModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ContentLoadModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.CoreModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.CrashReportingModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.CrashReportingModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.DirectorModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.DirectorModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.DSPGraphModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.DSPGraphModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.GameCenterModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.GameCenterModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.GIModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.GIModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.GridModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.GridModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.HotReloadModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.HotReloadModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ImageConversionModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ImageConversionModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.IMGUIModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.InputLegacyModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.InputLegacyModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.InputModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.InputModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.JSONSerializeModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.JSONSerializeModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.LocalizationModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.LocalizationModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.NVIDIAModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.NVIDIAModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ParticleSystemModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ParticleSystemModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.PerformanceReportingModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.PerformanceReportingModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.Physics2DModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.Physics2DModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.PhysicsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ProfilerModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ProfilerModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.PropertiesModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.PropertiesModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.ScreenCaptureModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.ScreenCaptureModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.SharedInternalsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.SharedInternalsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.SpriteMaskModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.SpriteMaskModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.SpriteShapeModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.SpriteShapeModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.StreamingModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.StreamingModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.SubstanceModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.SubstanceModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.SubsystemsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.SubsystemsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TerrainModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TerrainModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TerrainPhysicsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TerrainPhysicsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TextCoreFontEngineModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TextCoreFontEngineModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TextCoreTextEngineModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TextCoreTextEngineModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TextRenderingModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TextRenderingModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TilemapModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TilemapModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.TLSModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.TLSModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UI">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UI.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UIElementsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UIElementsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UIModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UIModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UmbraModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UmbraModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityAnalyticsCommonModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityAnalyticsCommonModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityAnalyticsModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityAnalyticsModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityConnectModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityConnectModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityCurlModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityCurlModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityTestProtocolModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityTestProtocolModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityWebRequestAssetBundleModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityWebRequestAssetBundleModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityWebRequestAudioModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityWebRequestAudioModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityWebRequestModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityWebRequestModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityWebRequestTextureModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityWebRequestTextureModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.UnityWebRequestWWWModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.UnityWebRequestWWWModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.VehiclesModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.VehiclesModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.VFXModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.VFXModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.VideoModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.VideoModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.VirtualTexturingModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.VirtualTexturingModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.VRModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.VRModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.WindModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.WindModule.dll</HintPath>
- </Reference>
- <Reference Include="UnityEngine.XRModule">
- <HintPath>..\Game\Thronefall_Data\Managed\UnityEngine.XRModule.dll</HintPath>
- </Reference>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/GameCode/Thronefall.sln b/GameCode/Thronefall.sln
deleted file mode 100644
index 87fce31..0000000
--- a/GameCode/Thronefall.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.4.33213.308
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Thronefall", "Thronefall.csproj", "{58D17092-0D05-4EB8-B23C-6DE022D1D11F}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {58D17092-0D05-4EB8-B23C-6DE022D1D11F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {58D17092-0D05-4EB8-B23C-6DE022D1D11F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {58D17092-0D05-4EB8-B23C-6DE022D1D11F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {58D17092-0D05-4EB8-B23C-6DE022D1D11F}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {BB7D9AA4-B90C-45B5-8CA6-2B41EAC195EB}
- EndGlobalSection
-EndGlobal
diff --git a/GameCode/ThronefallAudioManager.cs b/GameCode/ThronefallAudioManager.cs
deleted file mode 100644
index 291c626..0000000
--- a/GameCode/ThronefallAudioManager.cs
+++ /dev/null
@@ -1,342 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.Audio;
-using UnityEngine.Events;
-
-public class ThronefallAudioManager : MonoBehaviour
-{
- public class OneshotSource
- {
- public AudioSource aSource;
-
- public bool available = true;
-
- public OneshotSource(AudioSource audioSource)
- {
- aSource = audioSource;
- }
- }
-
- public enum AudioOneShot
- {
- BuildingBuild,
- BuildingUpgrade,
- CoinslotFill,
- CoinslotInteractionStart,
- LastCoinslotFill,
- CoinFillCancel,
- NightSurvived,
- BuildingRepair,
- EismolochAppear,
- EismolochSpawn,
- ButtonSelect,
- ButtonApply,
- ButtonApplyHero,
- CoinCollect,
- BuildingStandardProjectile,
- BallistaProjectile,
- PlayerSwordBigHit,
- EnemySpawn,
- ShowWaveCount,
- CloseWaveCount,
- ShowTooltip,
- None
- }
-
- private static ThronefallAudioManager instance;
-
- public readonly float oneshotAudioPoolSize = 15f;
-
- public readonly float onshotAudioPoolRecycleTick = 0.3f;
-
- private float oneshotSourceRecycleClock;
-
- private List<OneshotSource> oneshotSourcePool = new List<OneshotSource>();
-
- private OneshotSource bufferOneshotSource;
-
- public AudioSet audioContent;
-
- public AudioMixerGroup mgMusic;
-
- public AudioMixerGroup mgSFX;
-
- public AudioMixerGroup mgEnvironment;
-
- [HideInInspector]
- public UnityEvent onBuildingBuild = new UnityEvent();
-
- private bool muted;
-
- private float coinslotFillPitch = 1f;
-
- private float coinslotFillPitchIncrease = 0.025f;
-
- private OneshotSource coinslotFillBackground;
-
- private float coinslotFillBackgroundClock;
-
- private float coinslotTotalFillTime = 1f;
-
- public static ThronefallAudioManager Instance => instance;
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- instance = this;
- Object.DontDestroyOnLoad(base.gameObject);
- AudioSource audioSource = null;
- for (int i = 0; (float)i < oneshotAudioPoolSize; i++)
- {
- audioSource = new GameObject("Oneshot Source " + i).AddComponent<AudioSource>();
- audioSource.transform.SetParent(base.transform);
- audioSource.rolloffMode = AudioRolloffMode.Linear;
- audioSource.minDistance = 1f;
- audioSource.maxDistance = 80f;
- audioSource.spatialBlend = 0f;
- oneshotSourcePool.Add(new OneshotSource(audioSource));
- }
- }
-
- private void Update()
- {
- oneshotSourceRecycleClock += Time.unscaledDeltaTime;
- if (oneshotSourceRecycleClock > onshotAudioPoolRecycleTick)
- {
- RecycleOneshotSources();
- }
- if (coinslotFillBackground != null)
- {
- coinslotFillBackgroundClock += Time.deltaTime;
- coinslotFillBackground.aSource.pitch = Mathf.Lerp(0.75f, 1f, coinslotFillBackgroundClock / coinslotTotalFillTime);
- }
- }
-
- private void ProcessOneShotEvent(AudioOneShot oneshot, bool worldspace = false, Vector3 position = default(Vector3))
- {
- if (!muted)
- {
- switch (oneshot)
- {
- case AudioOneShot.CoinslotInteractionStart:
- coinslotFillPitch = 1f;
- PlaySoundAsOneShot(audioContent.CoinslotInteractionStart);
- StopCoinfillBackground();
- coinslotFillBackground = PlaySoundAsOneShot(audioContent.PayBackground, 0.2f, 0.75f);
- break;
- case AudioOneShot.CoinslotFill:
- PlaySoundAsOneShot(audioContent.CoinslotFill, 1f, coinslotFillPitch);
- coinslotFillPitch += coinslotFillPitchIncrease;
- break;
- case AudioOneShot.LastCoinslotFill:
- PlaySoundAsOneShot(audioContent.LastCoinslotFill);
- StopCoinfillBackground();
- break;
- case AudioOneShot.CoinFillCancel:
- StopCoinfillBackground();
- break;
- case AudioOneShot.BuildingBuild:
- onBuildingBuild.Invoke();
- PlaySoundAsOneShot(audioContent.BuildingBuild, 1f, Random.RandomRange(0.9f, 1.1f));
- break;
- case AudioOneShot.BuildingUpgrade:
- PlaySoundAsOneShot(audioContent.BuildingUpgrade);
- break;
- case AudioOneShot.NightSurvived:
- PlaySoundAsOneShot(audioContent.NightSurvived, 0.8f, 1f, null, 0);
- break;
- case AudioOneShot.BuildingRepair:
- PlaySoundAsOneShot(audioContent.BuildingRepair);
- break;
- case AudioOneShot.EismolochAppear:
- PlaySoundAsOneShot(audioContent.EismolochAppear.clips[Random.Range(0, audioContent.EismolochAppear.clips.Length)]);
- break;
- case AudioOneShot.EismolochSpawn:
- PlaySoundAsOneShot(audioContent.EismolochSpawnUnits.clips[Random.Range(0, audioContent.EismolochSpawnUnits.clips.Length)], 1f, 1f, null, 0);
- break;
- case AudioOneShot.ButtonSelect:
- PlaySoundAsOneShot(audioContent.ButtonSelect.GetRandomClip());
- break;
- case AudioOneShot.ButtonApply:
- PlaySoundAsOneShot(audioContent.ButtonApply.GetRandomClip());
- break;
- case AudioOneShot.ButtonApplyHero:
- PlaySoundAsOneShot(audioContent.ButtonApplyHero.GetRandomClip());
- break;
- case AudioOneShot.CoinCollect:
- PlaySoundAsOneShot(audioContent.CoinCollect.GetRandomClip(), 1f, Random.Range(0.9f, 1.1f));
- break;
- case AudioOneShot.BuildingStandardProjectile:
- PlaySoundAsOneShot(audioContent.TowerShot.GetRandomClip(), 0.5f, Random.Range(0.95f, 1.05f), null, 50, worldspace: true, position);
- break;
- case AudioOneShot.BallistaProjectile:
- PlaySoundAsOneShot(audioContent.BallistaShot.GetRandomClip(), 1f, 1f, null, 30, worldspace: true, position);
- break;
- case AudioOneShot.PlayerSwordBigHit:
- PlaySoundAsOneShot(audioContent.PlayerSwordBigHit);
- break;
- case AudioOneShot.EnemySpawn:
- PlaySoundAsOneShot(audioContent.EnemySpawn, 0.85f, Random.Range(0.95f, 1.05f), null, 140, worldspace: true, position);
- break;
- case AudioOneShot.ShowWaveCount:
- PlaySoundAsOneShot(audioContent.ShowWaveCount, 0.5f);
- break;
- case AudioOneShot.CloseWaveCount:
- PlaySoundAsOneShot(audioContent.CloseWaveCount);
- break;
- case AudioOneShot.ShowTooltip:
- PlaySoundAsOneShot(audioContent.ShowTooltip, 0.3f);
- break;
- }
- }
- }
-
- public OneshotSource PlaySoundAsOneShot(AudioClip clip, float volume = 1f, float pitch = 1f, AudioMixerGroup mixerGroup = null, int priority = 128, bool worldspace = false, Vector3 position = default(Vector3))
- {
- if (mixerGroup == null)
- {
- mixerGroup = mgSFX;
- }
- bufferOneshotSource = GetFreeOneshotSource();
- if (bufferOneshotSource == null)
- {
- return null;
- }
- if (worldspace)
- {
- bufferOneshotSource.aSource.transform.position = position;
- bufferOneshotSource.aSource.spatialBlend = 1f;
- }
- else
- {
- bufferOneshotSource.aSource.spatialBlend = 0f;
- }
- bufferOneshotSource.aSource.volume = volume;
- bufferOneshotSource.aSource.pitch = pitch;
- bufferOneshotSource.aSource.outputAudioMixerGroup = mixerGroup;
- bufferOneshotSource.aSource.priority = priority;
- bufferOneshotSource.aSource.PlayOneShot(clip);
- bufferOneshotSource.available = false;
- return bufferOneshotSource;
- }
-
- public OneshotSource PlaySoundAsOneShot(AudioSet.ClipArray clips, float volume = 1f, float pitch = 1f, AudioMixerGroup mixerGroup = null, int priority = 128, bool worldspace = false, Vector3 position = default(Vector3))
- {
- if (clips == null)
- {
- return null;
- }
- if (clips.clips.Length == 0)
- {
- return null;
- }
- if (mixerGroup == null)
- {
- mixerGroup = mgSFX;
- }
- bufferOneshotSource = GetFreeOneshotSource();
- if (bufferOneshotSource == null)
- {
- return null;
- }
- if (worldspace)
- {
- bufferOneshotSource.aSource.transform.position = position;
- bufferOneshotSource.aSource.spatialBlend = 1f;
- }
- else
- {
- bufferOneshotSource.aSource.spatialBlend = 0f;
- }
- bufferOneshotSource.aSource.volume = volume;
- bufferOneshotSource.aSource.pitch = pitch;
- bufferOneshotSource.aSource.outputAudioMixerGroup = mixerGroup;
- bufferOneshotSource.aSource.priority = priority;
- bufferOneshotSource.aSource.PlayOneShot(clips.clips[Random.Range(0, clips.clips.Length)]);
- bufferOneshotSource.available = false;
- return bufferOneshotSource;
- }
-
- private OneshotSource GetFreeOneshotSource()
- {
- foreach (OneshotSource item in oneshotSourcePool)
- {
- if (item.available)
- {
- return item;
- }
- }
- return oneshotSourcePool[0];
- }
-
- private void RecycleOneshotSources()
- {
- foreach (OneshotSource item in oneshotSourcePool)
- {
- if (!item.aSource.isPlaying)
- {
- item.available = true;
- }
- }
- oneshotSourceRecycleClock = 0f;
- }
-
- private void StopCoinfillBackground()
- {
- if (coinslotFillBackground != null)
- {
- coinslotFillBackground.available = true;
- coinslotFillBackground.aSource.Stop();
- coinslotFillBackground = null;
- coinslotFillBackgroundClock = 0f;
- }
- }
-
- public void MakeSureCoinFillSoundIsNotPlayingAnymore()
- {
- StopCoinfillBackground();
- }
-
- public static void Oneshot(AudioOneShot oneshot)
- {
- if (instance != null)
- {
- instance.ProcessOneShotEvent(oneshot);
- }
- else
- {
- Debug.LogError("No Audio Manager");
- }
- }
-
- public static void WorldSpaceOneShot(AudioOneShot oneshot, Vector3 position)
- {
- if (instance != null)
- {
- instance.ProcessOneShotEvent(oneshot, worldspace: true, position);
- }
- else
- {
- Debug.LogError("No Audio Manager");
- }
- }
-
- public static void Mute()
- {
- instance.muted = true;
- }
-
- public static void Unmute()
- {
- instance.muted = false;
- }
-
- public static void SetCoinDisplayFillTime(float time)
- {
- instance.coinslotTotalFillTime = time;
- }
-}
diff --git a/GameCode/ThronefallUIElement.cs b/GameCode/ThronefallUIElement.cs
deleted file mode 100644
index e2c9d64..0000000
--- a/GameCode/ThronefallUIElement.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-using UnityEngine;
-using UnityEngine.Events;
-
-public abstract class ThronefallUIElement : MonoBehaviour
-{
- public enum NavigationDirection
- {
- Right,
- Left,
- Up,
- Down
- }
-
- public enum SelectionState
- {
- Default,
- Focussed,
- Selected,
- FocussedAndSelected
- }
-
- protected SelectionState currentState;
-
- protected SelectionState previousState;
-
- public bool ignoreMouse;
-
- public bool autoSelectOnFocus;
-
- public bool cannotBeSelected;
-
- public ThronefallUIElement leftNav;
-
- public ThronefallUIElement rightNav;
-
- public ThronefallUIElement topNav;
-
- public ThronefallUIElement botNav;
-
- public UnityEvent onSelectionStateChange = new UnityEvent();
-
- public UnityEvent onApply = new UnityEvent();
-
- public UnityEvent<NavigationDirection> onEmptyNavigate = new UnityEvent<NavigationDirection>();
-
- public SelectionState CurrentState => currentState;
-
- public SelectionState PreviousState => previousState;
-
- public virtual bool dragable => false;
-
- public void Apply()
- {
- if (!SceneTransitionManager.instance.SceneTransitionIsRunning)
- {
- onApply.Invoke();
- OnApply();
- }
- }
-
- public void Select()
- {
- SetState(SelectionState.Selected);
- }
-
- public void Focus()
- {
- SetState(SelectionState.Focussed);
- }
-
- public void FocusAndSelect()
- {
- SetState(SelectionState.FocussedAndSelected);
- }
-
- public void Clear()
- {
- SetState(SelectionState.Default);
- }
-
- public void HardStateSet(SelectionState selectionState)
- {
- currentState = selectionState;
- previousState = selectionState;
- OnHardStateSet(selectionState);
- }
-
- protected abstract void OnApply();
-
- protected abstract void OnClear();
-
- protected abstract void OnSelect();
-
- protected abstract void OnFocus();
-
- protected abstract void OnFocusAndSelect();
-
- protected abstract void OnHardStateSet(SelectionState selectionState);
-
- private void SetState(SelectionState state)
- {
- if (state != currentState)
- {
- previousState = currentState;
- currentState = state;
- switch (currentState)
- {
- case SelectionState.Default:
- OnClear();
- break;
- case SelectionState.Focussed:
- OnFocus();
- break;
- case SelectionState.Selected:
- OnSelect();
- break;
- case SelectionState.FocussedAndSelected:
- OnFocusAndSelect();
- break;
- }
- onSelectionStateChange.Invoke();
- }
- }
-
- public ThronefallUIElement TryNavigate(NavigationDirection direction)
- {
- if (SceneTransitionManager.instance.SceneTransitionIsRunning)
- {
- return this;
- }
- ThronefallUIElement thronefallUIElement = null;
- switch (direction)
- {
- case NavigationDirection.Down:
- thronefallUIElement = botNav;
- break;
- case NavigationDirection.Up:
- thronefallUIElement = topNav;
- break;
- case NavigationDirection.Left:
- thronefallUIElement = leftNav;
- break;
- case NavigationDirection.Right:
- thronefallUIElement = rightNav;
- break;
- }
- if ((bool)thronefallUIElement && !thronefallUIElement.gameObject.activeInHierarchy)
- {
- return thronefallUIElement.TryNavigate(direction);
- }
- onEmptyNavigate.Invoke(direction);
- return thronefallUIElement;
- }
-
- public virtual void OnDrag(Vector2 mousePosition)
- {
- }
-
- public virtual void OnDragEnd()
- {
- }
-
- public virtual void OnDragStart()
- {
- }
-}
diff --git a/GameCode/TimesensitiveLight.cs b/GameCode/TimesensitiveLight.cs
deleted file mode 100644
index 158fa2b..0000000
--- a/GameCode/TimesensitiveLight.cs
+++ /dev/null
@@ -1,68 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-[RequireComponent(typeof(Light))]
-public class TimesensitiveLight : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public float dayIntensity = 1f;
-
- public float nightIntensity;
-
- public float blendTime = 3f;
-
- private Light target;
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- StopAllCoroutines();
- StartCoroutine(BlendToDay(blendTime));
- }
-
- public void OnDusk()
- {
- StopAllCoroutines();
- StartCoroutine(BlendToNight(blendTime));
- }
-
- private void Start()
- {
- target = GetComponent<Light>();
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- if (DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- StartCoroutine(BlendToDay(0f));
- }
- else
- {
- StartCoroutine(BlendToNight(0f));
- }
- }
-
- private IEnumerator BlendToNight(float duration)
- {
- float timer = 0f;
- while (timer <= duration)
- {
- timer += Time.deltaTime;
- target.intensity = Mathf.Lerp(dayIntensity, nightIntensity, Mathf.InverseLerp(0f, duration, timer));
- yield return null;
- }
- target.intensity = nightIntensity;
- }
-
- private IEnumerator BlendToDay(float duration)
- {
- float timer = 0f;
- while (timer <= duration)
- {
- timer += Time.deltaTime;
- target.intensity = Mathf.Lerp(nightIntensity, dayIntensity, Mathf.InverseLerp(0f, duration, timer));
- yield return null;
- }
- target.intensity = dayIntensity;
- }
-}
diff --git a/GameCode/TitleScreenPopUpHelper.cs b/GameCode/TitleScreenPopUpHelper.cs
deleted file mode 100644
index 7eb9d23..0000000
--- a/GameCode/TitleScreenPopUpHelper.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class TitleScreenPopUpHelper : MonoBehaviour
-{
- private int currentIndex;
-
- public List<BeforeGamePopUp> popUpOrder = new List<BeforeGamePopUp>();
-
- public void PopNext()
- {
- StartCoroutine(DelayedPopUp());
- }
-
- private IEnumerator DelayedPopUp()
- {
- yield return null;
- if (currentIndex < popUpOrder.Count)
- {
- if (popUpOrder[currentIndex].showInFullVersion)
- {
- UIFrameManager.instance.ChangeActiveFrameKeepOldVisible(popUpOrder[currentIndex].uiFrame);
- }
- currentIndex++;
- }
- }
-}
diff --git a/GameCode/TitleScreenUIHelper.cs b/GameCode/TitleScreenUIHelper.cs
deleted file mode 100644
index 51e2415..0000000
--- a/GameCode/TitleScreenUIHelper.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using UnityEngine;
-
-public class TitleScreenUIHelper : MonoBehaviour
-{
- [SerializeField]
- private Equippable tutorialWeapon;
-
- public void ClickPlay()
- {
- if (LevelProgressManager.instance.GetLevelDataForScene("Neuland(Tutorial)").highscoreBest > 0 || LevelProgressManager.instance.GetLevelDataForScene("Neuland(Tutorial)").beatenBest)
- {
- Debug.Log("Start game in level select as tutorial has already been played.");
- SceneTransitionManager.instance.TransitionFromNullToLevelSelect();
- return;
- }
- Debug.Log("Start it tutorial!");
- PerkManager.instance.CurrentlyEquipped.Clear();
- PerkManager.instance.CurrentlyEquipped.Add(tutorialWeapon);
- SceneTransitionManager.instance.TransitionFromNullToLevel("Neuland(Tutorial)");
- }
-}
diff --git a/GameCode/Tooltip.cs b/GameCode/Tooltip.cs
deleted file mode 100644
index 86091f7..0000000
--- a/GameCode/Tooltip.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using MoreMountains.Feedbacks;
-using TMPro;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class Tooltip : MonoBehaviour
-{
- [SerializeField]
- private TextMeshProUGUI content;
-
- [SerializeField]
- private RectTransform targetRect;
-
- [SerializeField]
- private MMF_Player onOpen;
-
- [SerializeField]
- private MMF_Player onClose;
-
- [SerializeField]
- private MMF_Player onUpdate;
-
- public string currentText => content.text;
-
- private void Awake()
- {
- base.transform.localScale = Vector3.zero;
- content.text = "";
- }
-
- public void SetTooltip(string tooltipTxt)
- {
- if (tooltipTxt == content.text)
- {
- return;
- }
- onOpen.StopFeedbacks();
- onClose.StopFeedbacks();
- onUpdate.StopFeedbacks();
- content.text = tooltipTxt;
- if (tooltipTxt == "")
- {
- onClose.PlayFeedbacks();
- return;
- }
- if (content.text == "")
- {
- onOpen.PlayFeedbacks();
- }
- else
- {
- onUpdate.PlayFeedbacks();
- }
- UpdateSize();
- }
-
- private void UpdateSize()
- {
- RectTransform component = GetComponent<RectTransform>();
- LayoutRebuilder.ForceRebuildLayoutImmediate(targetRect);
- component.sizeDelta = targetRect.sizeDelta;
- }
-}
diff --git a/GameCode/TooltipManager.cs b/GameCode/TooltipManager.cs
deleted file mode 100644
index 54be2e3..0000000
--- a/GameCode/TooltipManager.cs
+++ /dev/null
@@ -1,102 +0,0 @@
-using UnityEngine;
-
-public class TooltipManager : MonoBehaviour
-{
- public Tooltip targetTooltip;
-
- private PlayerInteraction playerInteraction;
-
- private string tutorialOverridePriority = "";
-
- private string tutorialOverride = "";
-
- private string nextTooltipText = "";
-
- private InteractorBase lastFocus;
-
- private int lastFocusLevel = -9999;
-
- private bool interactorRefreshFlag;
-
- public static TooltipManager instance;
-
- public void SetTutorialOverride(string _text, bool _priorityText = true)
- {
- if (_priorityText)
- {
- tutorialOverridePriority = _text;
- }
- else
- {
- tutorialOverride = _text;
- }
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- private void Start()
- {
- playerInteraction = PlayerInteraction.instance;
- SceneTransitionManager.instance.onSceneChange.AddListener(ResetAfterSceneLoad);
- }
-
- private void ResetAfterSceneLoad()
- {
- tutorialOverride = "";
- tutorialOverridePriority = "";
- nextTooltipText = "";
- }
-
- private void Update()
- {
- if (playerInteraction != PlayerInteraction.instance)
- {
- playerInteraction = PlayerInteraction.instance;
- }
- if (playerInteraction == null)
- {
- return;
- }
- if (UIFrameManager.instance.ActiveFrame != null)
- {
- nextTooltipText = "";
- interactorRefreshFlag = true;
- }
- else if (tutorialOverridePriority != "")
- {
- nextTooltipText = tutorialOverridePriority;
- interactorRefreshFlag = true;
- }
- else if ((bool)playerInteraction.FocussedInteractor)
- {
- if (lastFocus != playerInteraction.FocussedInteractor || interactorRefreshFlag)
- {
- nextTooltipText = playerInteraction.FocussedInteractor.ReturnTooltip();
- lastFocus = playerInteraction.FocussedInteractor;
- interactorRefreshFlag = false;
- }
- }
- else if (tutorialOverride != "")
- {
- nextTooltipText = tutorialOverride;
- interactorRefreshFlag = true;
- }
- else
- {
- nextTooltipText = "";
- lastFocus = null;
- }
- if (nextTooltipText != targetTooltip.currentText)
- {
- targetTooltip.SetTooltip(nextTooltipText);
- }
- }
-
- public void SetInteractorRefreshFlag()
- {
- interactorRefreshFlag = true;
- }
-}
diff --git a/GameCode/TreasureChestUIHelper.cs b/GameCode/TreasureChestUIHelper.cs
deleted file mode 100644
index e0a7b5c..0000000
--- a/GameCode/TreasureChestUIHelper.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class TreasureChestUIHelper : MonoBehaviour
-{
- public Transform scaleTarget;
-
- public TextMeshProUGUI balanceNumber;
-
- public GameObject toggleParent;
-
- private DayNightCycle dnc;
-
- private LocalGamestate lgs;
-
- private void Update()
- {
- if (dnc == null)
- {
- dnc = DayNightCycle.Instance;
- }
- if (lgs == null)
- {
- lgs = LocalGamestate.Instance;
- }
- if (dnc == null || lgs == null)
- {
- toggleParent.SetActive(value: false);
- }
- else if (dnc.CurrentTimestate == DayNightCycle.Timestate.Day && lgs.CurrentState == LocalGamestate.State.InMatch)
- {
- toggleParent.SetActive(value: true);
- }
- else
- {
- toggleParent.SetActive(value: false);
- }
- }
-}
diff --git a/GameCode/TreasuryUI.cs b/GameCode/TreasuryUI.cs
deleted file mode 100644
index e86b87d..0000000
--- a/GameCode/TreasuryUI.cs
+++ /dev/null
@@ -1,224 +0,0 @@
-using System.Collections.Generic;
-using TMPro;
-using UnityEngine;
-
-public class TreasuryUI : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public enum AnimationState
- {
- Off,
- ScaleIn,
- On,
- ScaleOut,
- WaitToScaleOut
- }
-
- public Transform coinsParent;
-
- public GameObject renderCamera;
-
- public GameObject coinPrefab;
-
- public Transform spawn;
-
- public float removalInterval;
-
- public float addInterval = 0.35f;
-
- public float activationLifetime = 1f;
-
- public AnimationCurve scaleCurve;
-
- public float scaleAnimationSpeed;
-
- private Transform scaleTarget;
-
- public float waitTimeBeforeScaleOut = 0.3f;
-
- private TextMeshProUGUI displayText;
-
- public Animator treasureChestAnimator;
-
- private List<GameObject> instantiatedCoins = new List<GameObject>();
-
- private PlayerInteraction targetPlayer;
-
- private int coinQeue;
-
- private float addCounter;
-
- private float removalCounter;
-
- private float activationCounter;
-
- private bool overrideActivation;
-
- private AnimationState currentState;
-
- private float scaleAnimationProgress;
-
- private float scaleOutWaitClock;
-
- private bool shouldBeActive
- {
- get
- {
- if (!(activationCounter > 0f))
- {
- return overrideActivation;
- }
- return true;
- }
- }
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- scaleTarget = UIFrameManager.instance.TreasureChest.scaleTarget;
- displayText = UIFrameManager.instance.TreasureChest.balanceNumber;
- targetPlayer = TagManager.instance.Players[0].GetComponent<PlayerInteraction>();
- targetPlayer.onBalanceGain.AddListener(AddCoins);
- targetPlayer.onBalanceSpend.AddListener(RemoveCoins);
- targetPlayer.onFocusPaymentInteraction.AddListener(LockActivation);
- targetPlayer.onUnfocusPaymentInteraction.AddListener(UnlockActivation);
- AddCoins(targetPlayer.Balance);
- SetState(currentState);
- }
-
- private void SetState(AnimationState newState)
- {
- switch (newState)
- {
- case AnimationState.Off:
- scaleTarget.localScale = Vector3.one * scaleCurve.Evaluate(0f);
- scaleAnimationProgress = 0f;
- break;
- case AnimationState.On:
- scaleTarget.localScale = Vector3.one * scaleCurve.Evaluate(1f);
- scaleAnimationProgress = 1f;
- treasureChestAnimator.SetBool("Open", value: true);
- break;
- case AnimationState.WaitToScaleOut:
- treasureChestAnimator.SetBool("Open", value: false);
- scaleOutWaitClock = 0f;
- break;
- }
- currentState = newState;
- }
-
- private void Update()
- {
- if (addCounter > 0f)
- {
- addCounter -= Time.deltaTime;
- }
- if (removalCounter > 0f)
- {
- removalCounter -= Time.deltaTime;
- }
- if (activationCounter > 0f)
- {
- activationCounter -= Time.deltaTime;
- }
- if (coinQeue > 0 && addCounter <= 0f)
- {
- GameObject item = Object.Instantiate(coinPrefab, spawn.position, Random.rotation, coinsParent);
- instantiatedCoins.Add(item);
- coinQeue--;
- addCounter = addInterval;
- activationCounter = activationLifetime;
- }
- if (coinQeue < 0 && addCounter <= 0f)
- {
- GameObject obj = instantiatedCoins[instantiatedCoins.Count - 1];
- instantiatedCoins.RemoveAt(instantiatedCoins.Count - 1);
- Object.Destroy(obj);
- coinQeue++;
- removalCounter = removalInterval;
- activationCounter = activationLifetime;
- }
- switch (currentState)
- {
- case AnimationState.Off:
- if (shouldBeActive)
- {
- SetState(AnimationState.ScaleIn);
- }
- break;
- case AnimationState.On:
- if (!shouldBeActive)
- {
- SetState(AnimationState.WaitToScaleOut);
- }
- break;
- case AnimationState.WaitToScaleOut:
- scaleOutWaitClock += Time.deltaTime;
- if (scaleOutWaitClock >= waitTimeBeforeScaleOut)
- {
- SetState(AnimationState.ScaleOut);
- }
- break;
- case AnimationState.ScaleOut:
- scaleAnimationProgress -= Time.deltaTime * scaleAnimationSpeed;
- scaleTarget.localScale = Vector3.one * scaleCurve.Evaluate(scaleAnimationProgress);
- if (scaleAnimationProgress <= 0f)
- {
- SetState(AnimationState.Off);
- }
- else if (shouldBeActive)
- {
- SetState(AnimationState.ScaleIn);
- }
- break;
- case AnimationState.ScaleIn:
- scaleAnimationProgress += Time.deltaTime * scaleAnimationSpeed;
- scaleTarget.localScale = Vector3.one * scaleCurve.Evaluate(scaleAnimationProgress);
- if (scaleAnimationProgress >= 1f)
- {
- SetState(AnimationState.On);
- }
- else if (!shouldBeActive)
- {
- SetState(AnimationState.ScaleIn);
- }
- break;
- }
- }
-
- private void AddCoins(int amount)
- {
- coinQeue += amount;
- displayText.text = "<sprite name=\"coin\">" + targetPlayer.Balance;
- }
-
- private void RemoveCoins(int amount)
- {
- coinQeue -= amount;
- displayText.text = "<sprite name=\"coin\">" + targetPlayer.Balance;
- }
-
- private void LockActivation()
- {
- overrideActivation = true;
- }
-
- private void UnlockActivation()
- {
- overrideActivation = false;
- activationCounter = activationLifetime;
- }
-
- public void OnDusk()
- {
- renderCamera.SetActive(value: false);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- renderCamera.SetActive(value: true);
- }
-}
diff --git a/GameCode/TutorialManager.cs b/GameCode/TutorialManager.cs
deleted file mode 100644
index 681344f..0000000
--- a/GameCode/TutorialManager.cs
+++ /dev/null
@@ -1,662 +0,0 @@
-using System.Collections.Generic;
-using I2.Loc;
-using Pathfinding.RVO;
-using UnityEngine;
-
-public class TutorialManager : MonoBehaviour
-{
- public static TutorialManager instance;
-
- private PlayerInteraction playerInteraction;
-
- private DayNightCycle dayNightCycle;
-
- private TooltipManager tooltipManager;
-
- private TagManager tagManager;
-
- private EnemySpawner enemySpawner;
-
- private bool allowStartingTheNight = true;
-
- private static readonly string LOCIDENTIFIER = "Tutorial/";
-
- [SerializeField]
- private Transform arrowMarkerTransform;
-
- [SerializeField]
- private ScreenMarker arrowMarker;
-
- [SerializeField]
- private Transform player;
-
- [Header("When you're dead")]
- [SerializeField]
- private Hp playerHp;
-
- [Header("Movement Tutorial")]
- [SerializeField]
- private RVOController playerRvo;
-
- [SerializeField]
- private float requiredMoveDist;
-
- private bool playerHasLearnedHowToMove;
-
- private bool destroyedPracticeTargets;
-
- private bool playerDidSprint;
-
- [Header("Build Castle Center")]
- [SerializeField]
- private BuildingInteractor caslteBuildInteractor;
-
- private bool castleCenterBuilt;
-
- private bool mayShowEnemySpawn;
-
- [Header("Start The Night")]
- private bool firstNightStarted;
-
- [Header("First Night")]
- [SerializeField]
- private StabMA activeStabAttack;
-
- [Header("Build Houses")]
- [SerializeField]
- private List<BuildSlot> houses;
-
- private bool housesBuilt;
-
- [Header("Start The 2nd Night")]
- private bool secondNightStarted;
-
- [Header("2nd Night")]
- [Header("Collect Taxes")]
- [SerializeField]
- private List<BuildSlot> towers;
-
- private bool towersBuilt;
-
- [Header("Start The 3d Night")]
- private bool thirdNightStarted;
-
- [Header("Upgrade Castle Center")]
- [SerializeField]
- private BuildSlot caslteBuilSlot;
-
- [SerializeField]
- private GameObject royalTraining;
-
- [SerializeField]
- private GameObject buildersGuild;
-
- private bool castleCenterUpgraded;
-
- private bool fourthNightStarted;
-
- [Header("It's up to you!")]
- [SerializeField]
- private BuildSlot barracks;
-
- [SerializeField]
- private CommandUnits command;
-
- private bool commandingUnits;
-
- private bool commandedUnits;
-
- private bool triedHoldPosition;
-
- [TextArea(1, 10)]
- public string whileDead;
-
- [TextArea(1, 10)]
- public string howToMove;
-
- [TextArea(1, 10)]
- public string howToSprint;
-
- [TextArea(1, 10)]
- public string howToBuild;
-
- [TextArea(1, 10)]
- public string startTheNight;
-
- [TextArea(1, 10)]
- public string howToStartTheNight;
-
- [TextArea(1, 10)]
- public string tooExpensiveToBuild;
-
- [TextArea(1, 10)]
- public string tooExpensiveToUpgrade;
-
- [TextArea(1, 10)]
- public string tooExpensiveToUpgradeCastleCenter;
-
- [TextArea(1, 10)]
- public string firstNight;
-
- [TextArea(1, 10)]
- public string firstNightDone;
-
- [TextArea(1, 10)]
- public string buildHouses;
-
- [TextArea(1, 10)]
- public string startThe2ndNight;
-
- [TextArea(1, 10)]
- public string secondNight;
-
- [TextArea(1, 10)]
- public string buildTowers;
-
- [TextArea(1, 10)]
- public string startThe3ndNight;
-
- [TextArea(1, 10)]
- public string upgradeCastleCenter;
-
- [TextArea(1, 10)]
- public string howToUpgrade;
-
- [TextArea(1, 10)]
- public string chooseAnUpgrade;
-
- [TextArea(1, 10)]
- public string goodChoiceGeneric;
-
- [TextArea(1, 10)]
- public string goodChoiceRoyalTraining;
-
- [TextArea(1, 10)]
- public string goodChoiceBuildersGuild;
-
- [TextArea(1, 10)]
- public string itsUpToYou;
-
- [TextArea(1, 10)]
- public string maybeBuildBarracksSomeTime;
-
- [TextArea(1, 10)]
- public string tryToCommandYourUnits;
-
- [TextArea(1, 10)]
- public string makeThemHoldPosition;
-
- [TextArea(1, 10)]
- public string howToHeal;
-
- [TextArea(1, 10)]
- public string lastDay;
-
- [TextArea(1, 10)]
- public string lastNight;
-
- private List<TaggedObject> findTaggedObjects = new List<TaggedObject>();
-
- private List<TagManager.ETag> mustHaveTag = new List<TagManager.ETag>();
-
- private List<TagManager.ETag> mayNotHaveTag = new List<TagManager.ETag>();
-
- public static bool AllowStartingTheNight
- {
- get
- {
- if (!instance)
- {
- return true;
- }
- return instance.allowStartingTheNight;
- }
- }
-
- public bool MayShowEnemySpawn => mayShowEnemySpawn;
-
- private void SetArrowMarker(bool _enabled, Vector3 _pos, bool _offScreenOnly = false)
- {
- arrowMarkerTransform.gameObject.SetActive(_enabled);
- arrowMarkerTransform.position = _pos + Vector3.up * 10f;
- arrowMarker.showWhenOnScreen = !_offScreenOnly;
- }
-
- private void MarkNearestObjectWithTag(TagManager.ETag _tag, bool _offScreenOnly = false)
- {
- findTaggedObjects.Clear();
- mustHaveTag.Clear();
- mayNotHaveTag.Clear();
- mustHaveTag.Add(_tag);
- TagManager.instance.FindAllTaggedObjectsWithTags(findTaggedObjects, mustHaveTag, mayNotHaveTag);
- if (findTaggedObjects.Count <= 0)
- {
- return;
- }
- TaggedObject taggedObject = null;
- float num = float.MaxValue;
- for (int i = 0; i < findTaggedObjects.Count; i++)
- {
- float magnitude = (player.transform.position - findTaggedObjects[i].transform.position).magnitude;
- if (magnitude < num)
- {
- num = magnitude;
- taggedObject = findTaggedObjects[i];
- }
- }
- SetArrowMarker(_enabled: true, taggedObject.transform.position, _offScreenOnly);
- }
-
- private void MarkNearestUnbuiltBuilding(List<BuildSlot> _buildSlots)
- {
- List<BuildSlot> list = new List<BuildSlot>(_buildSlots);
- for (int num = list.Count - 1; num >= 0; num--)
- {
- if (list[num].State == BuildSlot.BuildingState.Built)
- {
- list.RemoveAt(num);
- }
- else if (!list[num].gameObject.activeInHierarchy)
- {
- list.RemoveAt(num);
- }
- }
- if (list.Count <= 0)
- {
- return;
- }
- BuildSlot buildSlot = null;
- float num2 = float.MaxValue;
- for (int i = 0; i < list.Count; i++)
- {
- float magnitude = (player.transform.position - list[i].transform.position).magnitude;
- if (magnitude < num2)
- {
- num2 = magnitude;
- buildSlot = list[i];
- }
- }
- SetArrowMarker(_enabled: true, buildSlot.transform.position);
- }
-
- private void MarkNearestGoldCoin()
- {
- List<Coin> freeCoins = TagManager.instance.freeCoins;
- if (freeCoins.Count <= 0)
- {
- return;
- }
- Coin coin = null;
- float num = float.MaxValue;
- for (int i = 0; i < freeCoins.Count; i++)
- {
- float magnitude = (player.transform.position - freeCoins[i].transform.position).magnitude;
- if (magnitude < num)
- {
- num = magnitude;
- coin = freeCoins[i];
- }
- }
- SetArrowMarker(_enabled: true, coin.transform.position);
- }
-
- private void Awake()
- {
- instance = this;
- }
-
- private void OnEnable()
- {
- LocalizationManager.OnLocalizeEvent += FetchLocalizedTexts;
- }
-
- private void OnDisable()
- {
- LocalizationManager.OnLocalizeEvent -= FetchLocalizedTexts;
- }
-
- private void Start()
- {
- dayNightCycle = DayNightCycle.Instance;
- tooltipManager = TooltipManager.instance;
- tagManager = TagManager.instance;
- playerInteraction = PlayerInteraction.instance;
- enemySpawner = EnemySpawner.instance;
- FetchLocalizedTexts();
- }
-
- private void Update()
- {
- if (SceneTransitionManager.instance.SceneTransitionIsRunning)
- {
- return;
- }
- SetArrowMarker(_enabled: false, Vector3.zero);
- tooltipManager.SetTutorialOverride("");
- tooltipManager.SetTutorialOverride("", _priorityText: false);
- if (playerHp.KnockedOut)
- {
- tooltipManager.SetTutorialOverride(whileDead);
- return;
- }
- if (!playerHasLearnedHowToMove)
- {
- MarkNearestObjectWithTag(TagManager.ETag.PracticeTargets);
- tooltipManager.SetTutorialOverride(howToMove);
- requiredMoveDist -= playerRvo.velocity.magnitude * Time.deltaTime;
- if (requiredMoveDist < 0f)
- {
- playerHasLearnedHowToMove = true;
- }
- return;
- }
- if (!destroyedPracticeTargets)
- {
- MarkNearestObjectWithTag(TagManager.ETag.PracticeTargets);
- if (tagManager.CountAllTaggedObjectsWithTag(TagManager.ETag.PracticeTargets) <= 0)
- {
- destroyedPracticeTargets = true;
- }
- return;
- }
- if (tagManager.freeCoins.Count > 0 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day && enemySpawner.Wavenumber == -1 && enemySpawner.Wavenumber <= 3)
- {
- MarkNearestGoldCoin();
- return;
- }
- if (!castleCenterBuilt)
- {
- if (PlayerManager.Instance.RegisteredPlayers[0].Sprinting)
- {
- playerDidSprint = true;
- }
- if (playerInteraction.FocussedInteractor == caslteBuildInteractor)
- {
- tooltipManager.SetTutorialOverride(howToBuild);
- }
- else
- {
- tooltipManager.SetTutorialOverride(howToSprint);
- if (playerDidSprint)
- {
- SetArrowMarker(_enabled: true, caslteBuildInteractor.transform.position);
- }
- }
- if (tagManager.CountAllTaggedObjectsWithTag(TagManager.ETag.Building) > 0)
- {
- castleCenterBuilt = true;
- mayShowEnemySpawn = true;
- enemySpawner.EnemySpawnersHornUnFocussed();
- }
- return;
- }
- if (playerInteraction.FocussedInteractor != null && playerInteraction.FocussedInteractor.GetType() == typeof(BuildingInteractor))
- {
- BuildingInteractor buildingInteractor = (BuildingInteractor)playerInteraction.FocussedInteractor;
- if (buildingInteractor.targetBuilding.CanBeUpgraded && playerInteraction.Balance + CostDisplay.currentlyFilledCoinsFromLastActiveDisplay < buildingInteractor.targetBuilding.NextUpgradeOrBuildCost && !buildingInteractor.UpgradeCueVisible)
- {
- if (buildingInteractor.targetBuilding.State == BuildSlot.BuildingState.Blueprint)
- {
- tooltipManager.SetTutorialOverride(tooExpensiveToBuild);
- }
- else if (buildingInteractor.targetBuilding.GetComponentInChildren<TaggedObject>().Tags.Contains(TagManager.ETag.CastleCenter))
- {
- tooltipManager.SetTutorialOverride(tooExpensiveToUpgradeCastleCenter);
- }
- else
- {
- tooltipManager.SetTutorialOverride(tooExpensiveToUpgrade);
- }
- return;
- }
- }
- if (!firstNightStarted)
- {
- tooltipManager.SetTutorialOverride(startTheNight);
- if (dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- firstNightStarted = true;
- }
- return;
- }
- if (enemySpawner.Wavenumber == 0 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- EnemySpawner.instance.InfinitelySpawning = activeStabAttack.TargetsStabeed < 3;
- MarkNearestObjectWithTag(TagManager.ETag.EnemyOwned, _offScreenOnly: true);
- allowStartingTheNight = false;
- if (activeStabAttack.TargetsStabeed < 3)
- {
- tooltipManager.SetTutorialOverride(firstNight + " (" + activeStabAttack.TargetsStabeed + "/3)");
- }
- else
- {
- tooltipManager.SetTutorialOverride(firstNightDone);
- }
- return;
- }
- if (!housesBuilt && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- MarkNearestUnbuiltBuilding(houses);
- int num = tagManager.CountAllTaggedObjectsWithTag(TagManager.ETag.Building);
- int num2 = num - 1;
- tooltipManager.SetTutorialOverride(buildHouses + " (" + num2 + "/3)");
- if (playerInteraction.FocussedInteractor != null && playerInteraction.FocussedInteractor.GetType() == typeof(BuildingInteractor))
- {
- SetArrowMarker(_enabled: false, Vector3.zero);
- if (num2 == 0)
- {
- tooltipManager.SetTutorialOverride(howToBuild);
- }
- }
- if (num >= 4)
- {
- housesBuilt = true;
- }
- return;
- }
- if (!secondNightStarted && housesBuilt)
- {
- allowStartingTheNight = true;
- tooltipManager.SetTutorialOverride(startThe2ndNight);
- if (dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- secondNightStarted = true;
- }
- return;
- }
- if (enemySpawner.Wavenumber == 1 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- MarkNearestObjectWithTag(TagManager.ETag.EnemyOwned, _offScreenOnly: true);
- allowStartingTheNight = false;
- tooltipManager.SetTutorialOverride(secondNight);
- return;
- }
- if (!towersBuilt && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- if (dayNightCycle.AfterSunrise)
- {
- MarkNearestUnbuiltBuilding(towers);
- if (playerInteraction.FocussedInteractor != null && playerInteraction.FocussedInteractor.GetType() == typeof(BuildingInteractor))
- {
- SetArrowMarker(_enabled: false, Vector3.zero);
- }
- int num3 = tagManager.CountAllTaggedObjectsWithTag(TagManager.ETag.Building) - 4;
- tooltipManager.SetTutorialOverride(buildTowers + " (" + num3 + "/2)");
- if (num3 >= 2)
- {
- towersBuilt = true;
- }
- }
- return;
- }
- if (!thirdNightStarted && towersBuilt)
- {
- allowStartingTheNight = true;
- tooltipManager.SetTutorialOverride(startThe3ndNight);
- if (dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- thirdNightStarted = true;
- }
- return;
- }
- if (ChoiceManager.instance.ChoiceCoroutineRunning)
- {
- tooltipManager.SetTutorialOverride(chooseAnUpgrade);
- return;
- }
- if (thirdNightStarted && !castleCenterUpgraded && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- allowStartingTheNight = false;
- if (!dayNightCycle.AfterSunrise)
- {
- return;
- }
- if (playerInteraction.FocussedInteractor == caslteBuildInteractor)
- {
- tooltipManager.SetTutorialOverride(howToUpgrade);
- return;
- }
- SetArrowMarker(_enabled: true, caslteBuildInteractor.transform.position);
- tooltipManager.SetTutorialOverride(upgradeCastleCenter);
- if (caslteBuilSlot.Level == 2)
- {
- castleCenterUpgraded = true;
- allowStartingTheNight = true;
- }
- return;
- }
- if (!fourthNightStarted && castleCenterUpgraded)
- {
- allowStartingTheNight = true;
- if (royalTraining.activeInHierarchy)
- {
- tooltipManager.SetTutorialOverride(goodChoiceRoyalTraining);
- }
- else if (buildersGuild.activeInHierarchy)
- {
- tooltipManager.SetTutorialOverride(goodChoiceBuildersGuild);
- }
- else
- {
- tooltipManager.SetTutorialOverride(goodChoiceGeneric);
- }
- if (dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- fourthNightStarted = true;
- }
- return;
- }
- if (enemySpawner.Wavenumber == 3 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- allowStartingTheNight = false;
- return;
- }
- if (barracks.State == BuildSlot.BuildingState.Built && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- if (!dayNightCycle.AfterSunrise)
- {
- return;
- }
- if (!commandedUnits)
- {
- if (command.commanding)
- {
- commandingUnits = true;
- }
- if (commandingUnits && !command.commanding)
- {
- commandedUnits = true;
- }
- tooltipManager.SetTutorialOverride(tryToCommandYourUnits);
- return;
- }
- if (!triedHoldPosition)
- {
- foreach (TaggedObject playerUnit in TagManager.instance.PlayerUnits)
- {
- if (playerUnit.GetComponent<PathfindMovementPlayerunit>().HoldPosition)
- {
- triedHoldPosition = true;
- }
- }
- tooltipManager.SetTutorialOverride(makeThemHoldPosition);
- }
- }
- if (enemySpawner.Wavenumber == 3 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- if (dayNightCycle.AfterSunrise)
- {
- tooltipManager.SetTutorialOverride(itsUpToYou, _priorityText: false);
- allowStartingTheNight = true;
- }
- }
- else if (enemySpawner.Wavenumber == 4 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- tooltipManager.SetTutorialOverride(howToHeal);
- }
- else if (enemySpawner.Wavenumber >= 4 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day && barracks.State != BuildSlot.BuildingState.Built && playerInteraction.Balance + CostDisplay.currentlyFilledCoinsFromLastActiveDisplay >= 4)
- {
- if (dayNightCycle.AfterSunrise)
- {
- tooltipManager.SetTutorialOverride(maybeBuildBarracksSomeTime, _priorityText: false);
- if (playerInteraction.FocussedInteractor == null)
- {
- SetArrowMarker(_enabled: true, barracks.transform.position + Vector3.up * 3f);
- }
- }
- }
- else if (enemySpawner.Wavenumber == 5 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- tooltipManager.SetTutorialOverride(howToHeal);
- }
- else if (enemySpawner.Wavenumber == 5 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- _ = dayNightCycle.AfterSunrise;
- }
- else if (enemySpawner.Wavenumber == 6 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- tooltipManager.SetTutorialOverride(howToHeal);
- }
- else if (enemySpawner.Wavenumber == 6 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Day)
- {
- tooltipManager.SetTutorialOverride(lastDay, _priorityText: false);
- }
- else if (enemySpawner.Wavenumber == 7 && dayNightCycle.CurrentTimestate == DayNightCycle.Timestate.Night)
- {
- tooltipManager.SetTutorialOverride(lastNight);
- }
- }
-
- private void FetchLocalizedTexts()
- {
- whileDead = LocalizationManager.GetTranslation(LOCIDENTIFIER + "whileDead");
- howToMove = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToMove");
- howToSprint = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToSprint");
- howToBuild = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToBuild");
- startTheNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "startTheNight");
- howToStartTheNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToStartTheNight");
- tooExpensiveToBuild = LocalizationManager.GetTranslation(LOCIDENTIFIER + "tooExpensiveToBuild");
- tooExpensiveToUpgrade = LocalizationManager.GetTranslation(LOCIDENTIFIER + "tooExpensiveToUpgrade");
- tooExpensiveToUpgradeCastleCenter = LocalizationManager.GetTranslation(LOCIDENTIFIER + "tooExpensiveToUpgradeCastleCenter");
- firstNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "firstNight");
- firstNightDone = LocalizationManager.GetTranslation(LOCIDENTIFIER + "firstNightDone");
- buildHouses = LocalizationManager.GetTranslation(LOCIDENTIFIER + "buildHouses");
- startThe2ndNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "startThe2ndNight");
- secondNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "secondNight");
- buildTowers = LocalizationManager.GetTranslation(LOCIDENTIFIER + "buildTowers");
- startThe3ndNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "startThe3ndNight");
- upgradeCastleCenter = LocalizationManager.GetTranslation(LOCIDENTIFIER + "upgradeCastleCenter");
- howToUpgrade = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToUpgrade");
- chooseAnUpgrade = LocalizationManager.GetTranslation(LOCIDENTIFIER + "chooseAnUpgrade");
- goodChoiceGeneric = LocalizationManager.GetTranslation(LOCIDENTIFIER + "goodChoiceGeneric");
- goodChoiceRoyalTraining = LocalizationManager.GetTranslation(LOCIDENTIFIER + "goodChoiceRoyalTraining");
- goodChoiceBuildersGuild = LocalizationManager.GetTranslation(LOCIDENTIFIER + "goodChoiceBuildersGuild");
- itsUpToYou = LocalizationManager.GetTranslation(LOCIDENTIFIER + "itsUpToYou");
- maybeBuildBarracksSomeTime = LocalizationManager.GetTranslation(LOCIDENTIFIER + "maybeBuildBarracksSomeTime");
- tryToCommandYourUnits = LocalizationManager.GetTranslation(LOCIDENTIFIER + "tryToCommandYourUnits");
- makeThemHoldPosition = LocalizationManager.GetTranslation(LOCIDENTIFIER + "makeThemHoldPosition");
- howToHeal = LocalizationManager.GetTranslation(LOCIDENTIFIER + "howToHeal");
- lastDay = LocalizationManager.GetTranslation(LOCIDENTIFIER + "lastDay");
- lastNight = LocalizationManager.GetTranslation(LOCIDENTIFIER + "lastNight");
- }
-}
diff --git a/GameCode/UIFrame.cs b/GameCode/UIFrame.cs
deleted file mode 100644
index 877285f..0000000
--- a/GameCode/UIFrame.cs
+++ /dev/null
@@ -1,331 +0,0 @@
-using System.Collections.Generic;
-using Rewired;
-using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.EventSystems;
-using UnityEngine.UI;
-
-public class UIFrame : MonoBehaviour
-{
- public ThronefallUIElement firstSelected;
-
- public bool freezeTime;
-
- public bool freezePlayer = true;
-
- public bool canNotBeEscaped;
-
- public UnityEvent onActivate = new UnityEvent();
-
- public UnityEvent onNewFocus = new UnityEvent();
-
- public UnityEvent onNewSelection = new UnityEvent();
-
- public UnityEvent onApply = new UnityEvent();
-
- private List<ThronefallUIElement> managedElements = new List<ThronefallUIElement>();
-
- private UIFrameManager frameManager;
-
- private ThronefallUIElement currentSelected;
-
- private ThronefallUIElement currentFocus;
-
- private ThronefallUIElement lastSelected;
-
- private ThronefallUIElement currentDragTarget;
-
- private Player input;
-
- private GraphicRaycaster graphicRaycaster;
-
- private PointerEventData pointerData = new PointerEventData(null);
-
- private Vector2 lastFramePointerPosition;
-
- private List<RaycastResult> pointerRayResults = new List<RaycastResult>();
-
- private List<ThronefallUIElement> filteredPointerResults = new List<ThronefallUIElement>();
-
- private ThronefallUIElement lastApplied;
-
- private bool interactable = true;
-
- private bool mouseSleeping;
-
- public ThronefallUIElement CurrentSelection => currentSelected;
-
- public ThronefallUIElement CurrentFocus => currentFocus;
-
- public ThronefallUIElement LastApplied => lastApplied;
-
- public bool Interactable => interactable;
-
- private bool mouseApplyPossible
- {
- get
- {
- if (!(currentFocus != null) || currentFocus.ignoreMouse)
- {
- if (currentSelected != null && currentSelected.autoSelectOnFocus)
- {
- return !currentSelected.ignoreMouse;
- }
- return false;
- }
- return true;
- }
- }
-
- private void Awake()
- {
- frameManager = GetComponentInParent<UIFrameManager>();
- if (frameManager != null)
- {
- frameManager.RegisterFrame(this);
- }
- }
-
- private void Start()
- {
- input = ReInput.players.GetPlayer(0);
- graphicRaycaster = GetComponentInParent<GraphicRaycaster>();
- }
-
- private void Update()
- {
- if ((!(frameManager != null) || !(frameManager.ActiveFrame != this)) && interactable && !SceneTransitionManager.instance.SceneTransitionIsRunning)
- {
- HandleMouseNavigation();
- HandleButtonNavigation();
- }
- }
-
- private void HandleButtonNavigation()
- {
- if (input.GetButtonDown("Menu Apply"))
- {
- Apply();
- }
- else if (input.GetButtonRepeating("Menu Right"))
- {
- ControllerOrKeyboardNavigate(ThronefallUIElement.NavigationDirection.Right);
- }
- else if (input.GetButtonRepeating("Menu Left"))
- {
- ControllerOrKeyboardNavigate(ThronefallUIElement.NavigationDirection.Left);
- }
- else if (input.GetButtonRepeating("Menu Up"))
- {
- ControllerOrKeyboardNavigate(ThronefallUIElement.NavigationDirection.Up);
- }
- else if (input.GetButtonRepeating("Menu Down"))
- {
- ControllerOrKeyboardNavigate(ThronefallUIElement.NavigationDirection.Down);
- }
- }
-
- private void HandleMouseNavigation()
- {
- if (!input.controllers.hasMouse)
- {
- return;
- }
- lastFramePointerPosition = pointerData.position;
- pointerData.position = input.controllers.Mouse.screenPosition;
- if (mouseSleeping && object.Equals(lastFramePointerPosition, pointerData.position))
- {
- return;
- }
- mouseSleeping = false;
- pointerRayResults.Clear();
- graphicRaycaster.Raycast(pointerData, pointerRayResults);
- filteredPointerResults.Clear();
- foreach (RaycastResult pointerRayResult in pointerRayResults)
- {
- ThronefallUIElement component = pointerRayResult.gameObject.GetComponent<ThronefallUIElement>();
- if (component != null && managedElements.Contains(component))
- {
- filteredPointerResults.Add(component);
- }
- }
- if (filteredPointerResults.Count > 0 && !filteredPointerResults[0].ignoreMouse)
- {
- if (filteredPointerResults[0].autoSelectOnFocus)
- {
- if (filteredPointerResults[0] != currentSelected)
- {
- Select(filteredPointerResults[0]);
- }
- Focus(null);
- }
- else
- {
- Focus(filteredPointerResults[0]);
- }
- }
- else
- {
- Focus(null);
- }
- if (input.controllers.Mouse.GetButtonDown(0) && filteredPointerResults.Count > 0 && mouseApplyPossible)
- {
- if (CurrentFocus != null)
- {
- Select(currentFocus);
- }
- Apply();
- }
- if (input.controllers.Mouse.GetButton(0) && currentDragTarget != null)
- {
- currentDragTarget.OnDrag(input.controllers.Mouse.screenPosition);
- }
- if (input.controllers.Mouse.GetButtonUp(0) && currentDragTarget != null)
- {
- currentDragTarget.OnDragEnd();
- currentDragTarget = null;
- }
- }
-
- private void ControllerOrKeyboardNavigate(ThronefallUIElement.NavigationDirection direction)
- {
- if (!(currentSelected == null))
- {
- mouseSleeping = true;
- ThronefallUIElement thronefallUIElement = currentSelected.TryNavigate(direction);
- if (thronefallUIElement != null)
- {
- Select(thronefallUIElement);
- }
- }
- }
-
- public void Select(ThronefallUIElement newSelection)
- {
- if (newSelection == currentSelected || newSelection.cannotBeSelected)
- {
- return;
- }
- lastSelected = currentSelected;
- currentSelected = newSelection;
- onNewSelection.Invoke();
- if (lastSelected != null)
- {
- if (lastSelected == currentFocus)
- {
- lastSelected.Focus();
- }
- else
- {
- lastSelected.Clear();
- }
- }
- if (newSelection != null)
- {
- if (newSelection == currentFocus)
- {
- newSelection.FocusAndSelect();
- }
- else
- {
- newSelection.Select();
- }
- }
- }
-
- private void Focus(ThronefallUIElement newFocus)
- {
- if (newFocus == currentFocus)
- {
- return;
- }
- if (currentFocus != null)
- {
- if (currentFocus == currentSelected)
- {
- currentFocus.Select();
- }
- else
- {
- currentFocus.Clear();
- }
- }
- if (newFocus != null)
- {
- if (newFocus == currentSelected)
- {
- newFocus.FocusAndSelect();
- }
- else
- {
- newFocus.Focus();
- }
- }
- currentFocus = newFocus;
- onNewFocus.Invoke();
- }
-
- public void Activate()
- {
- base.gameObject.SetActive(value: true);
- interactable = true;
- lastApplied = null;
- currentFocus = null;
- currentSelected = null;
- onActivate.Invoke();
- RefetchManagedElements();
- foreach (ThronefallUIElement managedElement in managedElements)
- {
- managedElement.HardStateSet(ThronefallUIElement.SelectionState.Default);
- }
- if (firstSelected != null)
- {
- Select(firstSelected);
- }
- }
-
- public void Apply()
- {
- if (currentFocus != null && currentFocus.cannotBeSelected)
- {
- currentFocus.Apply();
- lastApplied = currentFocus;
- if (currentFocus.dragable)
- {
- currentDragTarget = CurrentFocus;
- currentDragTarget.OnDragStart();
- }
- }
- else
- {
- if (!(currentSelected != null))
- {
- return;
- }
- currentSelected.Apply();
- lastApplied = currentSelected;
- if (currentSelected.dragable)
- {
- currentDragTarget = currentSelected;
- currentDragTarget.OnDragStart();
- }
- }
- onApply.Invoke();
- }
-
- public void Deactivate(bool keepGameObjectActive = false)
- {
- interactable = false;
- base.gameObject.SetActive(keepGameObjectActive);
- foreach (ThronefallUIElement managedElement in managedElements)
- {
- managedElement.Clear();
- }
- }
-
- private void RefetchManagedElements()
- {
- managedElements.Clear();
- managedElements.AddRange(GetComponentsInChildren<ThronefallUIElement>(includeInactive: true));
- }
-}
diff --git a/GameCode/UIFrameManager.cs b/GameCode/UIFrameManager.cs
deleted file mode 100644
index 80752f8..0000000
--- a/GameCode/UIFrameManager.cs
+++ /dev/null
@@ -1,286 +0,0 @@
-using System.Collections.Generic;
-using Rewired;
-using UnityEngine;
-using UnityEngine.Events;
-using UnityEngine.SceneManagement;
-
-public class UIFrameManager : MonoBehaviour
-{
- public static UIFrameManager instance;
-
- [SerializeField]
- private string titleFrameSceneName = "_StartMenu";
-
- [SerializeField]
- private UIFrame titleFrame;
-
- [SerializeField]
- private UIFrame overworldPauseMenuFrame;
-
- [SerializeField]
- private UIFrame inMatchPauseMenuFrame;
-
- [SerializeField]
- private UIFrame levelSelectFrame;
-
- [SerializeField]
- private UIFrame endOfMatchFrame;
-
- [SerializeField]
- private UIFrame levelUpRewardFrame;
-
- [SerializeField]
- private UIFrame choiceFrame;
-
- private UIFrame activeFrame;
-
- private List<UIFrame> frames = new List<UIFrame>();
-
- private Player input;
-
- private Stack<UIFrame> frameStack = new Stack<UIFrame>();
-
- [SerializeField]
- private RectTransform inGameUIContainer;
-
- [SerializeField]
- private RectTransform onScreenMarkerContainer;
-
- [SerializeField]
- private TreasureChestUIHelper treasureChest;
-
- [HideInInspector]
- public UnityEvent onFrameOpen = new UnityEvent();
-
- private SceneTransitionManager sceneTransitionManager;
-
- public UIFrame ActiveFrame => activeFrame;
-
- public RectTransform InGameUIContainer => inGameUIContainer;
-
- public RectTransform OnScreenMarkerContainer => onScreenMarkerContainer;
-
- public TreasureChestUIHelper TreasureChest => treasureChest;
-
- private void Awake()
- {
- if (instance != null)
- {
- Object.Destroy(base.gameObject);
- }
- else
- {
- instance = this;
- }
- }
-
- private void Start()
- {
- if (SceneManager.sceneCount <= 1)
- {
- SceneManager.LoadScene(titleFrameSceneName, LoadSceneMode.Additive);
- }
- foreach (UIFrame frame in frames)
- {
- frame.Deactivate();
- }
- if (IsSceneLoaded(titleFrameSceneName))
- {
- SwitchToTitleFrame();
- }
- input = ReInput.players.GetPlayer(0);
- sceneTransitionManager = SceneTransitionManager.instance;
- sceneTransitionManager.onSceneChange.AddListener(UpdateUIBasedOnCurrentScene);
- UpdateUIBasedOnCurrentScene();
- }
-
- public void SwitchToTitleFrame()
- {
- ChangeActiveFrame(titleFrame);
- }
-
- public bool IsSceneLoaded(string sceneName)
- {
- for (int i = 0; i < SceneManager.sceneCount; i++)
- {
- if (SceneManager.GetSceneAt(i).name == sceneName)
- {
- return true;
- }
- }
- return false;
- }
-
- private void Update()
- {
- if (input.GetButtonDown("Pause Menu"))
- {
- OpenMenu();
- }
- else if (input.GetButtonDown("Cancel"))
- {
- Cancel();
- }
- }
-
- private void Cancel()
- {
- if (activeFrame != null && activeFrame != titleFrame && !activeFrame.canNotBeEscaped)
- {
- CloseActiveFrame();
- }
- }
-
- private void OpenMenu()
- {
- if (activeFrame != null && !activeFrame.canNotBeEscaped)
- {
- CloseActiveFrame();
- }
- else if (activeFrame == null && SceneManager.GetSceneByName(SceneTransitionManager.instance.levelSelectScene).IsValid())
- {
- ChangeActiveFrame(overworldPauseMenuFrame);
- }
- else if (activeFrame == null)
- {
- ChangeActiveFrame(inMatchPauseMenuFrame);
- }
- }
-
- public void RegisterFrame(UIFrame frame)
- {
- frames.Add(frame);
- }
-
- public void ChangeActiveFrame(UIFrame nextFrame)
- {
- ProcessFrameChange(nextFrame, writeOldFrameToStack: true);
- }
-
- public void ChangeActiveFrameKeepOldVisible(UIFrame nextFrame)
- {
- ProcessFrameChange(nextFrame, writeOldFrameToStack: true, keepOldFrameGameObjectActive: true);
- }
-
- private void ProcessFrameChange(UIFrame nextFrame, bool writeOldFrameToStack, bool keepOldFrameGameObjectActive = false)
- {
- if (nextFrame != null)
- {
- if (LocalGamestate.Instance != null)
- {
- LocalGamestate.Instance.SetPlayerFreezeState(nextFrame.freezePlayer);
- }
- if (nextFrame.freezeTime)
- {
- Time.timeScale = 0f;
- }
- else
- {
- Time.timeScale = 1f;
- }
- if (activeFrame != null && writeOldFrameToStack)
- {
- frameStack.Push(activeFrame);
- }
- onFrameOpen.Invoke();
- }
- else
- {
- if (LocalGamestate.Instance != null)
- {
- LocalGamestate.Instance.SetPlayerFreezeState(frozen: false);
- }
- Time.timeScale = 1f;
- frameStack.Clear();
- }
- if (activeFrame != null)
- {
- if (activeFrame == choiceFrame && ChoiceManager.instance.ChoiceCoroutineWaiting)
- {
- ChoiceManager.instance.CancelChoice();
- }
- activeFrame.Deactivate(keepOldFrameGameObjectActive);
- }
- if (nextFrame != null)
- {
- nextFrame.Activate();
- }
- activeFrame = nextFrame;
- }
-
- public void CloseActiveFrame()
- {
- if (activeFrame != null)
- {
- if (frameStack.Count > 0)
- {
- ProcessFrameChange(frameStack.Pop(), writeOldFrameToStack: false);
- }
- else
- {
- ChangeActiveFrame(null);
- }
- }
- }
-
- public void CloseAllFrames()
- {
- if (activeFrame != null)
- {
- frameStack.Clear();
- ChangeActiveFrame(null);
- }
- }
-
- public void ResetToTileScreen()
- {
- ProcessFrameChange(titleFrame, writeOldFrameToStack: false);
- frameStack.Clear();
- }
-
- public void QuitToDesktop()
- {
- Application.Quit();
- }
-
- public static bool TryOpenLevelSelect()
- {
- if (instance.activeFrame != null)
- {
- return false;
- }
- instance.ChangeActiveFrame(instance.levelSelectFrame);
- return true;
- }
-
- public static void TriggerEndOfMatch()
- {
- instance.ProcessFrameChange(instance.endOfMatchFrame, writeOldFrameToStack: false);
- }
-
- public static void ShowLevelUpReward()
- {
- instance.ProcessFrameChange(instance.levelUpRewardFrame, writeOldFrameToStack: true, keepOldFrameGameObjectActive: true);
- }
-
- private void UpdateUIBasedOnCurrentScene()
- {
- switch (sceneTransitionManager.CurrentSceneState)
- {
- case SceneTransitionManager.SceneState.InGame:
- treasureChest.gameObject.SetActive(value: true);
- break;
- case SceneTransitionManager.SceneState.LevelSelect:
- treasureChest.gameObject.SetActive(value: false);
- break;
- case SceneTransitionManager.SceneState.MainMenu:
- treasureChest.gameObject.SetActive(value: false);
- break;
- }
- }
-
- public void PresentChoiceFrame()
- {
- ProcessFrameChange(choiceFrame, writeOldFrameToStack: false);
- }
-}
diff --git a/GameCode/UIParentResizer.cs b/GameCode/UIParentResizer.cs
deleted file mode 100644
index 4044a15..0000000
--- a/GameCode/UIParentResizer.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class UIParentResizer : MonoBehaviour
-{
- public enum Mode
- {
- Vertical
- }
-
- public Mode mode;
-
- public float minHeight;
-
- public float padding = 30f;
-
- public List<RectTransform> observedElements;
-
- private RectTransform ownRT;
-
- public void Trigger()
- {
- if (ownRT == null)
- {
- ownRT = GetComponent<RectTransform>();
- }
- float num = 0f;
- foreach (RectTransform observedElement in observedElements)
- {
- LayoutRebuilder.ForceRebuildLayoutImmediate(observedElement);
- num += observedElement.sizeDelta.y;
- }
- if (num < minHeight)
- {
- num = minHeight;
- }
- ownRT.sizeDelta = new Vector2(ownRT.sizeDelta.x, num + 2f * padding);
- }
-}
diff --git a/GameCode/UIScaleHandler.cs b/GameCode/UIScaleHandler.cs
deleted file mode 100644
index 0c36253..0000000
--- a/GameCode/UIScaleHandler.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using UnityEngine;
-
-public class UIScaleHandler : MonoBehaviour
-{
- public static bool useLargeUI;
-
- public TooltipManager tooltipManager;
-
- public GameObject defaultTooltipParent;
-
- public Tooltip defaultTooltip;
-
- public GameObject largeTooltipParent;
-
- public Tooltip largeTooltip;
-
- public RectTransform treasureChestParent;
-
- public RectTransform coinCountParent;
-
- private void Start()
- {
- Refresh();
- }
-
- public void Refresh()
- {
- if (SettingsManager.Instance.UseLargeInGameUI)
- {
- defaultTooltipParent.SetActive(value: false);
- largeTooltipParent.SetActive(value: true);
- tooltipManager.targetTooltip = largeTooltip;
- treasureChestParent.localScale = Vector3.one * 1.25f;
- coinCountParent.localScale = Vector3.one * 1.25f;
- }
- else
- {
- defaultTooltipParent.SetActive(value: true);
- largeTooltipParent.SetActive(value: false);
- tooltipManager.targetTooltip = defaultTooltip;
- treasureChestParent.localScale = Vector3.one;
- coinCountParent.localScale = Vector3.one;
- }
- }
-}
diff --git a/GameCode/UnitAttackAnimator.cs b/GameCode/UnitAttackAnimator.cs
deleted file mode 100644
index 01b95c2..0000000
--- a/GameCode/UnitAttackAnimator.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-using UnityEngine;
-
-public class UnitAttackAnimator : MonoBehaviour
-{
- public AutoAttack unit;
-
- public OneShotAnimationBase attackAnimation;
-
- public OneShotAnimationBase[] additionalAttackAnimations;
-
- private void Start()
- {
- if ((bool)unit)
- {
- unit.onAttackTriggered.AddListener(OnAttack);
- }
- }
-
- private void OnAttack()
- {
- if ((bool)attackAnimation)
- {
- attackAnimation.Trigger();
- }
- OneShotAnimationBase[] array = additionalAttackAnimations;
- for (int i = 0; i < array.Length; i++)
- {
- array[i].Trigger();
- }
- }
-}
diff --git a/GameCode/UnitAudio.cs b/GameCode/UnitAudio.cs
deleted file mode 100644
index 0f25583..0000000
--- a/GameCode/UnitAudio.cs
+++ /dev/null
@@ -1,371 +0,0 @@
-using Pathfinding.RVO;
-using UnityEngine;
-
-public class UnitAudio : MonoBehaviour
-{
- public enum LocomotionMode
- {
- Bounce,
- Rolling,
- Perpetual
- }
-
- public enum OneshotType
- {
- TakeDamage,
- Attack,
- Die
- }
-
- public enum StepType
- {
- DefaultOnFoot,
- Giant,
- Fly,
- SiegeRoll,
- RacerRoll,
- SquishyBounce,
- ExploderRoll,
- MonsterRider,
- Slime
- }
-
- public enum DmgType
- {
- DefaultHumanoidOnFoot,
- BigOrganic,
- SmallOrganic,
- Siege
- }
-
- public enum DeathType
- {
- DefaultHumanoidOnFoot,
- BigOrganic,
- Siege,
- Exploder
- }
-
- public enum AttackType
- {
- DefaultSword,
- MassiveBlunt,
- FlyerSpit,
- Flatbow,
- Crossbow,
- Catapult,
- RacerBite,
- HunterlingBite,
- Ram,
- Slime
- }
-
- public LocomotionMode locomotionMode;
-
- public SimpleWalk walkSource;
-
- public float maxSpeed = 4f;
-
- public AudioSource stepSource;
-
- public AudioSource sfxSource;
-
- public AutoAttack attackTrigger;
-
- public Hp hp;
-
- public RVOController movementTrigger;
-
- public StepType step;
-
- [Range(0f, 1f)]
- public float stepVolume = 0.5f;
-
- public float stepPitchVariation = 0.1f;
-
- public AttackType attack;
-
- [Range(0f, 1f)]
- public float attackVolume = 0.5f;
-
- public float attackPitchVariation = 0.3f;
-
- public DeathType death;
-
- [Range(0f, 1f)]
- public float deathVolume = 0.5f;
-
- public float deathPitchVariation = 0.3f;
-
- public DmgType dmg;
-
- [Range(0f, 1f)]
- public float dmgVolume = 0.5f;
-
- public float dmgPitchVariation = 0.3f;
-
- private int rollPriority = 80;
-
- private int stepPriority = 110;
-
- private int damagePriority = 20;
-
- private int attackPriority = 10;
-
- private int deathPriority = 3;
-
- private AudioSet.ClipArray soundOnDmg;
-
- private AudioSet.ClipArray soundOnAttack;
-
- private AudioSet.ClipArray soundOnDeath;
-
- private AudioSet.ClipArray soundOnStep;
-
- private bool dead;
-
- private bool isBounceLocomotion => locomotionMode == LocomotionMode.Bounce;
-
- private bool isPerpetualLocomotion => locomotionMode == LocomotionMode.Perpetual;
-
- private bool isRollingLocomotion => locomotionMode == LocomotionMode.Rolling;
-
- private void Start()
- {
- if (locomotionMode == LocomotionMode.Bounce)
- {
- stepSource.priority = stepPriority;
- }
- else
- {
- stepSource.priority = rollPriority;
- }
- AudioSet audioContent = ThronefallAudioManager.Instance.audioContent;
- switch (step)
- {
- case StepType.DefaultOnFoot:
- soundOnStep = audioContent.DefaultOnFootStep;
- break;
- case StepType.Giant:
- soundOnStep = audioContent.GiantStep;
- break;
- case StepType.Fly:
- soundOnStep = audioContent.FlyingSmall;
- break;
- case StepType.SiegeRoll:
- soundOnStep = audioContent.SiegeRoll;
- break;
- case StepType.SquishyBounce:
- soundOnStep = audioContent.SquishyBounce;
- break;
- case StepType.RacerRoll:
- soundOnStep = audioContent.RacerRoll;
- break;
- case StepType.ExploderRoll:
- soundOnStep = audioContent.ExploderRoll;
- break;
- case StepType.MonsterRider:
- soundOnStep = audioContent.MonsterRiderGallop;
- break;
- case StepType.Slime:
- soundOnStep = audioContent.SlimeStep;
- break;
- }
- switch (attack)
- {
- case AttackType.DefaultSword:
- soundOnAttack = audioContent.DefaultSwordAttack;
- break;
- case AttackType.MassiveBlunt:
- soundOnAttack = audioContent.MassiveBluntAttack;
- break;
- case AttackType.FlyerSpit:
- soundOnAttack = audioContent.FlyerSpit;
- break;
- case AttackType.Crossbow:
- soundOnAttack = audioContent.CrossbowShot;
- break;
- case AttackType.Flatbow:
- soundOnAttack = audioContent.FlatbowShot;
- break;
- case AttackType.Catapult:
- soundOnAttack = audioContent.CatapultShot;
- break;
- case AttackType.RacerBite:
- soundOnAttack = audioContent.RacerBite;
- break;
- case AttackType.HunterlingBite:
- soundOnAttack = audioContent.HunterlingBite;
- break;
- case AttackType.Ram:
- soundOnAttack = audioContent.Ram;
- break;
- case AttackType.Slime:
- soundOnAttack = audioContent.SlimeSpit;
- break;
- }
- switch (dmg)
- {
- case DmgType.DefaultHumanoidOnFoot:
- soundOnDmg = audioContent.DefaultHumanoidOnFootDamage;
- break;
- case DmgType.BigOrganic:
- soundOnDmg = audioContent.BigOrganicDamage;
- break;
- case DmgType.SmallOrganic:
- soundOnDmg = audioContent.SmallOrganicDamage;
- break;
- case DmgType.Siege:
- soundOnDmg = audioContent.SiegeDamage;
- break;
- }
- switch (death)
- {
- case DeathType.DefaultHumanoidOnFoot:
- soundOnDeath = audioContent.DefaultHumanoidOnFootDeath;
- break;
- case DeathType.BigOrganic:
- soundOnDeath = audioContent.BigOrganicDeath;
- break;
- case DeathType.Siege:
- soundOnDeath = audioContent.SiegeDeath;
- break;
- case DeathType.Exploder:
- soundOnDeath = audioContent.ExploderDeath;
- break;
- }
- if ((bool)hp)
- {
- hp.OnKillOrKnockout.AddListener(PlayDeath);
- hp.OnReceiveDamage.AddListener(PlayDMG);
- hp.OnRevive.AddListener(Revive);
- }
- if ((bool)attackTrigger)
- {
- attackTrigger.onAttackTriggered.AddListener(PlayAttack);
- }
- switch (locomotionMode)
- {
- case LocomotionMode.Rolling:
- stepSource.clip = soundOnStep.GetRandomClip();
- stepSource.volume = stepVolume;
- stepSource.loop = true;
- stepSource.pitch = Random.Range(1f - stepPitchVariation, 1f + stepPitchVariation);
- break;
- case LocomotionMode.Perpetual:
- stepSource.clip = soundOnStep.GetRandomClip();
- stepSource.volume = stepVolume;
- stepSource.loop = true;
- stepSource.pitch = Random.Range(1f - stepPitchVariation, 1f + stepPitchVariation);
- stepSource.Play();
- break;
- case LocomotionMode.Bounce:
- if ((bool)walkSource)
- {
- walkSource.onGroundContact.AddListener(PlayStep);
- }
- break;
- }
- if (isRollingLocomotion)
- {
- maxSpeed *= maxSpeed;
- }
- }
-
- private void Update()
- {
- if (dead)
- {
- return;
- }
- if (Time.timeScale < 0.1f)
- {
- stepSource.Pause();
- }
- else if (locomotionMode == LocomotionMode.Perpetual && !stepSource.isPlaying)
- {
- stepSource.Play();
- }
- else
- {
- if (locomotionMode != LocomotionMode.Rolling)
- {
- return;
- }
- if (movementTrigger.velocity.sqrMagnitude > 0.25f)
- {
- if (!stepSource.isPlaying)
- {
- stepSource.Play();
- }
- stepSource.volume = Mathf.Lerp(0f, stepVolume, movementTrigger.velocity.sqrMagnitude / maxSpeed);
- }
- else if (stepSource.isPlaying)
- {
- stepSource.Pause();
- }
- }
- }
-
- public void PlaySound(OneshotType soundType)
- {
- if (dead)
- {
- return;
- }
- switch (soundType)
- {
- case OneshotType.Attack:
- sfxSource.priority = attackPriority;
- sfxSource.pitch = Random.Range(1f - attackPitchVariation, 1f + attackPitchVariation);
- sfxSource.PlayOneShot(soundOnAttack.GetRandomClip(), attackVolume);
- break;
- case OneshotType.TakeDamage:
- if (!((double)hp.HpValue < 0.01))
- {
- sfxSource.priority = damagePriority;
- sfxSource.pitch = Random.Range(1f - dmgPitchVariation, 1f + dmgPitchVariation);
- sfxSource.PlayOneShot(soundOnDmg.GetRandomClip(), dmgVolume);
- }
- break;
- case OneshotType.Die:
- sfxSource.priority = deathPriority;
- sfxSource.pitch = Random.Range(1f - deathPitchVariation, 1f + deathPitchVariation);
- sfxSource.PlayOneShot(soundOnDeath.GetRandomClip(), deathVolume);
- break;
- }
- }
-
- private void PlayStep()
- {
- stepSource.priority = stepPriority;
- stepSource.pitch = Random.Range(1f - stepPitchVariation, 1f + stepPitchVariation);
- stepSource.PlayOneShot(soundOnStep.GetRandomClip(), stepVolume);
- }
-
- private void PlayAttack()
- {
- PlaySound(OneshotType.Attack);
- }
-
- private void PlayDMG(bool causedByPlayer)
- {
- PlaySound(OneshotType.TakeDamage);
- }
-
- private void PlayDeath()
- {
- PlaySound(OneshotType.Die);
- dead = true;
- if (!hp.getsKnockedOutInsteadOfDying)
- {
- sfxSource.transform.parent = null;
- Object.Destroy(sfxSource.gameObject, 3f);
- }
- }
-
- private void Revive()
- {
- dead = false;
- }
-}
diff --git a/GameCode/UnitCommandRadiusAnimation.cs b/GameCode/UnitCommandRadiusAnimation.cs
deleted file mode 100644
index 9549100..0000000
--- a/GameCode/UnitCommandRadiusAnimation.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System.Collections;
-using UnityEngine;
-
-public class UnitCommandRadiusAnimation : MonoBehaviour
-{
- public AnimationCurve animationCurve;
-
- public AnimationCurve hideCurve;
-
- public float animationTime;
-
- public float hideTime = 0.25f;
-
- private bool active;
-
- public bool Active => active;
-
- private void Start()
- {
- if (!active)
- {
- base.gameObject.SetActive(value: false);
- }
- }
-
- public void Activate()
- {
- active = true;
- StopAllCoroutines();
- base.gameObject.SetActive(value: true);
- StartCoroutine(AnimateShow());
- }
-
- public void Deactivate()
- {
- active = false;
- if (base.gameObject.activeSelf)
- {
- StopAllCoroutines();
- StartCoroutine(AnimateHide());
- }
- }
-
- private IEnumerator AnimateShow()
- {
- float timer = 0f;
- while (timer <= animationTime)
- {
- timer += Time.deltaTime;
- base.transform.localScale = Vector3.one * animationCurve.Evaluate(Mathf.InverseLerp(0f, animationTime, timer));
- yield return null;
- }
- base.transform.localScale = Vector3.one;
- }
-
- private IEnumerator AnimateHide()
- {
- Debug.Log("START ANIMATION");
- float timer = 0f;
- while (timer <= hideTime)
- {
- timer += Time.deltaTime;
- base.transform.localScale = Vector3.one * hideCurve.Evaluate(Mathf.InverseLerp(0f, hideTime, timer));
- yield return null;
- }
- base.transform.localScale = Vector3.zero;
- base.gameObject.SetActive(value: false);
- }
-}
diff --git a/GameCode/UnitRespawnerForBuildings.cs b/GameCode/UnitRespawnerForBuildings.cs
deleted file mode 100644
index a405fb5..0000000
--- a/GameCode/UnitRespawnerForBuildings.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UnitRespawnerForBuildings : MonoBehaviour
-{
- public Hp hp;
-
- public List<Hp> units;
-
- public List<float> timeToRespawnAUnitDependingOnLevel = new List<float>();
-
- private float timeTillNextRespawn;
-
- public BuildSlot myBuildSlot;
-
- public TaggedObject taggedObject;
-
- public ProductionBar productionBar;
-
- [Header("Quick arrange units:")]
- public Transform copyUnitPositionsFrom;
-
- private bool gladiatorSchool;
-
- private bool elliteWarriors;
-
- private float gladiatorSchoolSpeed;
-
- private float elliteWarriorSpeed;
-
- private float totalTrainingSpeed = 1f;
-
- [SerializeField]
- private Equippable gladiatorSchoolPerk;
-
- [SerializeField]
- private Equippable elliteWarriorsPerk;
-
- private bool godOfDeathActive;
-
- private float ResetCooldownTime => timeToRespawnAUnitDependingOnLevel[Mathf.Clamp(myBuildSlot.Level, 0, timeToRespawnAUnitDependingOnLevel.Count - 1)];
-
- private void Start()
- {
- godOfDeathActive = PerkManager.instance.GodOfDeathActive;
- timeTillNextRespawn = ResetCooldownTime;
- productionBar.UpdateVisual(0f);
- gladiatorSchool = PerkManager.IsEquipped(gladiatorSchoolPerk);
- elliteWarriors = PerkManager.IsEquipped(elliteWarriorsPerk);
- gladiatorSchoolSpeed = PerkManager.instance.gladiatorSchool_TrainingSpeedMultiplyer;
- elliteWarriorSpeed = PerkManager.instance.elliteWarriors_TrainingSpeedMultiplyer;
- totalTrainingSpeed = 1f * (gladiatorSchool ? gladiatorSchoolSpeed : 1f) * (elliteWarriors ? elliteWarriorSpeed : 1f);
- }
-
- private void Update()
- {
- if (godOfDeathActive)
- {
- return;
- }
- if (hp.KnockedOut)
- {
- productionBar.UpdateVisual(0f);
- }
- else if (AtLeastOneUnitIsKnockedOut())
- {
- timeTillNextRespawn -= Time.deltaTime;
- productionBar.UpdateVisual(1f - timeTillNextRespawn / ResetCooldownTime * totalTrainingSpeed);
- if (timeTillNextRespawn <= 0f)
- {
- timeTillNextRespawn += ResetCooldownTime;
- timeTillNextRespawn /= totalTrainingSpeed;
- RespawnAKnockedOutUnit();
- }
- }
- else
- {
- timeTillNextRespawn = ResetCooldownTime;
- timeTillNextRespawn /= totalTrainingSpeed;
- productionBar.UpdateVisual(0f);
- }
- }
-
- private bool AtLeastOneUnitIsKnockedOut()
- {
- for (int i = 0; i < units.Count; i++)
- {
- Hp hp = units[i];
- if (hp.gameObject.activeInHierarchy && hp.KnockedOut)
- {
- return true;
- }
- }
- return false;
- }
-
- private void RespawnAKnockedOutUnit()
- {
- for (int i = 0; i < units.Count; i++)
- {
- Hp hp = units[i];
- if (hp.gameObject.activeInHierarchy && hp.KnockedOut)
- {
- hp.Revive();
- PathfindMovementPlayerunit component = hp.GetComponent<PathfindMovementPlayerunit>();
- Vector3 position = taggedObject.colliderForBigOjectsToMeasureDistance.ClosestPoint(component.HopePositionOriginal);
- hp.transform.position = position;
- component.SnapToNavmesh();
- break;
- }
- }
- }
-}
diff --git a/GameCode/UnitSpawnAppear.cs b/GameCode/UnitSpawnAppear.cs
deleted file mode 100644
index 514dcbb..0000000
--- a/GameCode/UnitSpawnAppear.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using UnityEngine;
-
-public class UnitSpawnAppear : MonoBehaviour
-{
- public AnimationCurve scaleCurve;
-
- public float animationTime;
-
- public float initialDelay;
-
- public Transform target;
-
- private float timer;
-
- private float delay;
-
- private void Awake()
- {
- target.localScale = Vector3.zero;
- }
-
- private void Update()
- {
- delay += Time.deltaTime;
- if (!(delay < initialDelay))
- {
- timer += Time.deltaTime;
- target.localScale = Vector3.one * scaleCurve.Evaluate(Mathf.InverseLerp(0f, animationTime, timer));
- if (timer > animationTime)
- {
- base.transform.localScale = Vector3.one;
- base.enabled = false;
- }
- }
- }
-}
diff --git a/GameCode/UnitySerializedDictionary.cs b/GameCode/UnitySerializedDictionary.cs
deleted file mode 100644
index 3fc1906..0000000
--- a/GameCode/UnitySerializedDictionary.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-public abstract class UnitySerializedDictionary<TKey, TValue> : Dictionary<TKey, TValue>, ISerializationCallbackReceiver
-{
- [SerializeField]
- [HideInInspector]
- private List<TKey> keyData = new List<TKey>();
-
- [SerializeField]
- [HideInInspector]
- private List<TValue> valueData = new List<TValue>();
-
- void ISerializationCallbackReceiver.OnAfterDeserialize()
- {
- Clear();
- for (int i = 0; i < keyData.Count && i < valueData.Count; i++)
- {
- base[keyData[i]] = valueData[i];
- }
- }
-
- void ISerializationCallbackReceiver.OnBeforeSerialize()
- {
- keyData.Clear();
- valueData.Clear();
- using Enumerator enumerator = GetEnumerator();
- while (enumerator.MoveNext())
- {
- KeyValuePair<TKey, TValue> current = enumerator.Current;
- keyData.Add(current.Key);
- valueData.Add(current.Value);
- }
- }
-}
diff --git a/GameCode/UpgradeAssassinsTraining.cs b/GameCode/UpgradeAssassinsTraining.cs
deleted file mode 100644
index 52ce5ec..0000000
--- a/GameCode/UpgradeAssassinsTraining.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using UnityEngine;
-
-public class UpgradeAssassinsTraining : MonoBehaviour
-{
- public static UpgradeAssassinsTraining instance;
-
- public float additionalCooldownSpeed = 1.75f;
-
- public float activationWindow = 0.2f;
-
- private void OnEnable()
- {
- instance = this;
- PlayerUpgradeManager.instance.assassinsTraining = true;
- }
-}
diff --git a/GameCode/UpgradeBuildersGuild.cs b/GameCode/UpgradeBuildersGuild.cs
deleted file mode 100644
index 11e7682..0000000
--- a/GameCode/UpgradeBuildersGuild.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-
-public class UpgradeBuildersGuild : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- private List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();
-
- private List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
-
- private List<TaggedObject> allHousesTaggedObjs = new List<TaggedObject>();
-
- private List<TaggedObject> allHousesTaggedObjsSorted = new List<TaggedObject>();
-
- private void OnEnable()
- {
- mustHaveTags.Add(TagManager.ETag.House);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDusk()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDawn_AfterSunrise()
- {
- StartCoroutine(AfterSunriseDelayed());
- }
-
- public IEnumerator AfterSunriseDelayed()
- {
- yield return null;
- yield return null;
- TagManager.instance.FindAllTaggedObjectsWithTags(allHousesTaggedObjs, mustHaveTags, mayNotHaveTags);
- allHousesTaggedObjsSorted = allHousesTaggedObjs.OrderBy((TaggedObject o) => (o.transform.position - base.transform.position).magnitude).ToList();
- for (int i = 0; i < allHousesTaggedObjsSorted.Count; i++)
- {
- BuildSlot componentInParent = allHousesTaggedObjs[i].GetComponentInParent<BuildSlot>();
- if (componentInParent.Level == 1)
- {
- componentInParent.TryToBuildOrUpgradeAndPay(null, _presentChoice: false);
- break;
- }
- }
- }
-}
diff --git a/GameCode/UpgradeCastleUp.cs b/GameCode/UpgradeCastleUp.cs
deleted file mode 100644
index 802d0f6..0000000
--- a/GameCode/UpgradeCastleUp.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class UpgradeCastleUp : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- private List<TagManager.ETag> mustHaveTags = new List<TagManager.ETag>();
-
- private List<TagManager.ETag> mayNotHaveTags = new List<TagManager.ETag>();
-
- private List<TaggedObject> allWallsAndTowers = new List<TaggedObject>();
-
- private void OnEnable()
- {
- mustHaveTags.Add(TagManager.ETag.WallOrTower);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDusk()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDawn_AfterSunrise()
- {
- StartCoroutine(AfterSunriseDelayed());
- }
-
- public IEnumerator AfterSunriseDelayed()
- {
- yield return null;
- yield return null;
- TagManager.instance.FindAllTaggedObjectsWithTags(allWallsAndTowers, mustHaveTags, mayNotHaveTags);
- for (int i = 0; i < allWallsAndTowers.Count; i++)
- {
- BuildSlot componentInParent = allWallsAndTowers[i].GetComponentInParent<BuildSlot>();
- if (componentInParent.NextUpgradeOrBuildCost > 1)
- {
- componentInParent.NextUpgradeOrBuildCost--;
- }
- }
- }
-}
diff --git a/GameCode/UpgradeCommander.cs b/GameCode/UpgradeCommander.cs
deleted file mode 100644
index 015f31b..0000000
--- a/GameCode/UpgradeCommander.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-using UnityEngine;
-
-public class UpgradeCommander : MonoBehaviour
-{
- public static UpgradeCommander instance;
-
- public float moveSpeedMultiplicator = 1.5f;
-
- public float effectRadius = 12f;
-
- public float healingInterval = 1f;
-
- public float healingPerSecond = 1f;
-
- private float cooldown;
-
- private TagManager tagManager;
-
- private Transform playerTransform;
-
- private void OnEnable()
- {
- tagManager = TagManager.instance;
- instance = this;
- CommandUnits.instance.PlaceCommandedUnitsAndCalculateTargetPositions();
- CommandUnits.instance.commanding = false;
- PlayerUpgradeManager.instance.commander = true;
- playerTransform = PlayerUpgradeManager.instance.transform;
- }
-
- private void Update()
- {
- cooldown -= Time.deltaTime;
- if (!(cooldown <= 0f))
- {
- return;
- }
- cooldown += healingInterval;
- foreach (TaggedObject playerUnit in tagManager.PlayerUnits)
- {
- if ((playerTransform.position - playerUnit.transform.position).magnitude < effectRadius)
- {
- playerUnit.Hp.Heal(healingPerSecond * healingInterval);
- }
- }
- }
-}
diff --git a/GameCode/UpgradeGodlyCurse.cs b/GameCode/UpgradeGodlyCurse.cs
deleted file mode 100644
index e1a6fc8..0000000
--- a/GameCode/UpgradeGodlyCurse.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-
-public class UpgradeGodlyCurse : MonoBehaviour
-{
- private void OnEnable()
- {
- PlayerUpgradeManager.instance.godlyCurse = true;
- }
-}
diff --git a/GameCode/UpgradeMagicArmor.cs b/GameCode/UpgradeMagicArmor.cs
deleted file mode 100644
index 4fb88f5..0000000
--- a/GameCode/UpgradeMagicArmor.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-
-public class UpgradeMagicArmor : MonoBehaviour
-{
- public static UpgradeMagicArmor instance;
-
- public float damageMultiplyer = 1f;
-
- private void Awake()
- {
- instance = this;
- }
-
- private void OnEnable()
- {
- PlayerUpgradeManager.instance.magicArmor = true;
- }
-}
diff --git a/GameCode/UpgradePlayerDmg.cs b/GameCode/UpgradePlayerDmg.cs
deleted file mode 100644
index 965a440..0000000
--- a/GameCode/UpgradePlayerDmg.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using UnityEngine;
-
-public class UpgradePlayerDmg : MonoBehaviour
-{
- public float damageMultiplyer;
-
- private void OnEnable()
- {
- PlayerUpgradeManager.instance.playerDamageMultiplyer *= damageMultiplyer;
- }
-}
diff --git a/GameCode/UpgradePlayerHp.cs b/GameCode/UpgradePlayerHp.cs
deleted file mode 100644
index 84495d7..0000000
--- a/GameCode/UpgradePlayerHp.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using UnityEngine;
-
-public class UpgradePlayerHp : MonoBehaviour
-{
- public float healthMultiplyer;
-
- private void OnEnable()
- {
- PlayerMovement[] registeredPlayers = PlayerManager.Instance.RegisteredPlayers;
- for (int i = 0; i < registeredPlayers.Length; i++)
- {
- Hp component = registeredPlayers[i].GetComponent<Hp>();
- component.maxHp *= healthMultiplyer;
- component.Heal(float.MaxValue);
- }
- }
-}
diff --git a/GameCode/VersionNumberDisplay.cs b/GameCode/VersionNumberDisplay.cs
deleted file mode 100644
index 90b50f0..0000000
--- a/GameCode/VersionNumberDisplay.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using TMPro;
-using UnityEngine;
-
-public class VersionNumberDisplay : MonoBehaviour
-{
- public TextMeshProUGUI display;
-
- private void OnEnable()
- {
- display.text = "version " + Application.version;
- }
-}
diff --git a/GameCode/Wave.cs b/GameCode/Wave.cs
deleted file mode 100644
index cbbce3c..0000000
--- a/GameCode/Wave.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-
-[Serializable]
-public class Wave
-{
- [TextArea]
- public string warningText;
-
- public List<Spawn> spawns = new List<Spawn>();
-
- public void Reset(bool _resetGold = true)
- {
- for (int i = 0; i < spawns.Count; i++)
- {
- spawns[i].Reset(_resetGold);
- }
- }
-
- public void Update()
- {
- for (int i = 0; i < spawns.Count; i++)
- {
- spawns[i].Update();
- }
- }
-
- public bool HasFinished()
- {
- int num = 0;
- for (int i = 0; i < spawns.Count; i++)
- {
- if (spawns[i].Finished)
- {
- num++;
- }
- }
- if (num >= spawns.Count)
- {
- return true;
- }
- return false;
- }
-}
diff --git a/GameCode/WaveCountPopUp.cs b/GameCode/WaveCountPopUp.cs
deleted file mode 100644
index cf4b150..0000000
--- a/GameCode/WaveCountPopUp.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-using System.Collections;
-using TMPro;
-using UnityEngine;
-
-public class WaveCountPopUp : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public GameObject popup;
-
- public AnimationCurve scaleCurve;
-
- public float animationTime = 0.75f;
-
- public float initialDelay = 0.5f;
-
- public float showTime = 3f;
-
- public TextMeshProUGUI targetText;
-
- private bool inAnimation;
-
- private void Start()
- {
- popup.SetActive(value: false);
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- }
-
- public void OnDawn_AfterSunrise()
- {
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-
- public void OnDusk()
- {
- if (!inAnimation)
- {
- StartCoroutine(PopUpAnimation());
- }
- }
-
- private IEnumerator PopUpAnimation()
- {
- inAnimation = true;
- popup.SetActive(value: true);
- popup.transform.localScale = Vector3.zero;
- float timer2 = 0f;
- yield return new WaitForSeconds(initialDelay);
- targetText.text = "<style=Body Numerals>" + (EnemySpawner.instance.Wavenumber + 1) + "</style><style=Body Bold>/</style><style=Body Numerals>" + EnemySpawner.instance.WaveCount;
- StartCoroutine(PlaySoundDelayed());
- while (timer2 < animationTime)
- {
- timer2 += Time.deltaTime;
- popup.transform.localScale = Vector3.one * scaleCurve.Evaluate(Mathf.InverseLerp(0f, animationTime, timer2));
- yield return null;
- }
- popup.transform.localScale = Vector3.one;
- yield return new WaitForSeconds(showTime);
- timer2 = 0f;
- while (timer2 < animationTime)
- {
- timer2 += Time.deltaTime;
- popup.transform.localScale = Vector3.one * scaleCurve.Evaluate(Mathf.InverseLerp(animationTime, 0f, timer2));
- yield return null;
- }
- popup.transform.localScale = Vector3.zero;
- popup.SetActive(value: false);
- inAnimation = false;
- }
-
- private IEnumerator PlaySoundDelayed()
- {
- yield return new WaitForSeconds(0.1f);
- ThronefallAudioManager.Oneshot(ThronefallAudioManager.AudioOneShot.ShowWaveCount);
- }
-}
diff --git a/GameCode/WaveDescriptionUI.cs b/GameCode/WaveDescriptionUI.cs
deleted file mode 100644
index ef1feb5..0000000
--- a/GameCode/WaveDescriptionUI.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-
-public class WaveDescriptionUI : MonoBehaviour, DayNightCycle.IDaytimeSensitive
-{
- public GameObject waveDescriptionPanel;
-
- private void Start()
- {
- DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this);
- waveDescriptionPanel.SetActive(DayNightCycle.Instance.CurrentTimestate == DayNightCycle.Timestate.Day);
- }
-
- public void OnDawn_AfterSunrise()
- {
- waveDescriptionPanel.SetActive(value: true);
- }
-
- public void OnDusk()
- {
- waveDescriptionPanel.SetActive(value: false);
- }
-
- public void OnDawn_BeforeSunrise()
- {
- }
-}
diff --git a/GameCode/Weapon.cs b/GameCode/Weapon.cs
deleted file mode 100644
index bde057a..0000000
--- a/GameCode/Weapon.cs
+++ /dev/null
@@ -1,225 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-
-[CreateAssetMenu(fileName = "Weapon", menuName = "SimpleSiege/Weapon")]
-public class Weapon : ScriptableObject
-{
- public enum EFacingDirection
- {
- Uniform,
- FaceVictim,
- FaceAttacker,
- Random
- }
-
- public enum EDamageAffectedByBlacksmithUpgrade
- {
- Null,
- MultiplyBy_MeleeDamage,
- MultiplyBy_RangedDamage,
- DivideBy_MeleeResistance,
- DivideBy_RangedResistance
- }
-
- [Header("Blacksmith Upgrades")]
- public EDamageAffectedByBlacksmithUpgrade blacksmithEffect;
-
- [Header("Aimbot Projectile Settings")]
- public EFacingDirection projectileFacingDirection;
-
- public float projectileSpeed;
-
- public float projectileParabulaFactor;
-
- public float projectileParabulaOffset;
-
- public GameObject projectileVisuals;
-
- public GameObject projectileImpactVisuals;
-
- public bool performRaycastWhenHittingEmptyPosition;
-
- public LayerMask emptyPositionRaycastLayerMask;
-
- public float raycastLength = 1f;
-
- public bool performRaycastBeforeShooting;
-
- public LayerMask raycastBeforeShootingLayerMask;
-
- public float maximumChaseRange = 10000f;
-
- public float shootWithoutTargetRange = 20f;
-
- public GameObject spawnOnGroundWhenTargetingGround;
-
- [Header("Melee Attack Setting")]
- public GameObject fxSpawnOnAttacker;
-
- public bool parentFxToAttacker;
-
- public GameObject fxSpawnOnVictim;
-
- [Header("Damage")]
- public bool isPlayerWeapon;
-
- public List<DamageModifyer> directDamage;
-
- public List<DamageModifyer> splashDamage;
-
- public float slowsFastEnemiesFor;
-
- private PlayerUpgradeManager playerUpgradeManager;
-
- private BlacksmithUpgrades blacksmithUpgrades;
-
- public void Attack(Vector3 _attackOrigin, Hp _target, Vector3 _attackDirection, TaggedObject _attacker, float _finalDamageMultiplyer = 1f)
- {
- playerUpgradeManager = PlayerUpgradeManager.instance;
- Vector3 vector = _attackOrigin + _attackDirection;
- if ((bool)_target)
- {
- vector = ((!(_target.TaggedObj.colliderForBigOjectsToMeasureDistance != null)) ? (_target.transform.position + _target.hitFeedbackHeight * Vector3.up) : _target.TaggedObj.colliderForBigOjectsToMeasureDistance.ClosestPoint(_attackOrigin));
- }
- if (performRaycastBeforeShooting)
- {
- Physics.Raycast(_attackOrigin, vector - _attackOrigin, out var hitInfo, (vector - _attackOrigin).magnitude, raycastBeforeShootingLayerMask);
- if (hitInfo.collider != null)
- {
- Hp componentInParent = hitInfo.collider.GetComponentInParent<Hp>();
- if (!(componentInParent != null))
- {
- return;
- }
- _target = componentInParent;
- vector = ((!(_target.TaggedObj.colliderForBigOjectsToMeasureDistance != null)) ? (_target.transform.position + _target.hitFeedbackHeight * Vector3.up) : _target.TaggedObj.colliderForBigOjectsToMeasureDistance.ClosestPoint(_attackOrigin));
- }
- }
- if (projectileSpeed > 0f && projectileVisuals != null)
- {
- AimbotProjectile component = Object.Instantiate(projectileVisuals, _attackOrigin, Quaternion.identity).GetComponent<AimbotProjectile>();
- Vector3 backupTarget = Vector3.zero;
- if (_target == null)
- {
- backupTarget = _attackOrigin + _attackDirection.normalized * shootWithoutTargetRange;
- }
- component.Fire(this, _target, maximumChaseRange, backupTarget, _attacker, _finalDamageMultiplyer);
- return;
- }
- if (fxSpawnOnAttacker != null)
- {
- SpawnAttackFx(fxSpawnOnAttacker, _attackOrigin, _attackOrigin, _target, vector, _attacker, _finalDamageMultiplyer, parentFxToAttacker);
- }
- if (fxSpawnOnVictim != null && _target != null)
- {
- SpawnAttackFx(fxSpawnOnVictim, vector, _attackOrigin, _target, vector, _attacker, _finalDamageMultiplyer);
- }
- DealDamage(_target, _finalDamageMultiplyer, _attacker);
- }
-
- private void SpawnAttackFx(GameObject _fxPrefab, Vector3 _spawnPosition, Vector3 _attackOrigin, Hp _target, Vector3 _attackPosition, TaggedObject _attacker, float _finalDamageMultiplyer = 1f, bool parentToAttacker = false)
- {
- Vector3 vector = _attackPosition - _attackOrigin;
- vector = new Vector3(vector.x, 0f, vector.z);
- Quaternion rotation = Quaternion.LookRotation(vector, Vector3.up);
- Transform parent = null;
- if (parentToAttacker)
- {
- parent = _attacker.transform;
- }
- GameObject fxWithSplashDamageAreas = Object.Instantiate(_fxPrefab, _spawnPosition, rotation, parent);
- DealSplashDamage(fxWithSplashDamageAreas, _attacker, _finalDamageMultiplyer);
- }
-
- public void DealSplashDamage(GameObject _fxWithSplashDamageAreas, TaggedObject _attacker, float _finalDamageMultiplyer)
- {
- if (splashDamage.Count <= 0)
- {
- return;
- }
- SplashDamageArea[] componentsInChildren = _fxWithSplashDamageAreas.GetComponentsInChildren<SplashDamageArea>();
- if (componentsInChildren.Length != 0)
- {
- List<Hp> list = new List<Hp>();
- for (int i = 0; i < componentsInChildren.Length; i++)
- {
- componentsInChildren[i].AddReiveDamageHpScriptsInAreaToList(list);
- }
- for (int j = 0; j < list.Count; j++)
- {
- DealDamage(list[j], _finalDamageMultiplyer, _attacker, splashDamage: true);
- }
- }
- }
-
- public void DealDamage(Hp _target, float _finalDamageMultiplyer, TaggedObject _attacker, bool splashDamage = false)
- {
- if (!_target || !_target.TaggedObj)
- {
- return;
- }
- float num = _finalDamageMultiplyer;
- if (blacksmithUpgrades == null)
- {
- blacksmithUpgrades = BlacksmithUpgrades.instance;
- }
- switch (blacksmithEffect)
- {
- case EDamageAffectedByBlacksmithUpgrade.MultiplyBy_MeleeDamage:
- num *= blacksmithUpgrades.meleeDamage;
- break;
- case EDamageAffectedByBlacksmithUpgrade.MultiplyBy_RangedDamage:
- num *= blacksmithUpgrades.rangedDamage;
- break;
- case EDamageAffectedByBlacksmithUpgrade.DivideBy_MeleeResistance:
- num /= blacksmithUpgrades.meleeResistance;
- break;
- case EDamageAffectedByBlacksmithUpgrade.DivideBy_RangedResistance:
- num /= blacksmithUpgrades.rangedResistance;
- break;
- }
- float hpValue = _target.HpValue;
- if (splashDamage)
- {
- _target.TakeDamage(CalculateSplashDamageOnTarget(_target.TaggedObj, num), _attacker, isPlayerWeapon);
- }
- else
- {
- _target.TakeDamage(CalculateDirectDamageOnTarget(_target.TaggedObj, num), _attacker, isPlayerWeapon);
- }
- if (_target.TaggedObj.Tags.Contains(TagManager.ETag.Player) && playerUpgradeManager.magicArmor)
- {
- float num2 = hpValue - _target.HpValue;
- if (num2 > 0f && (bool)_attacker)
- {
- _attacker.Hp.TakeDamage(num2 * UpgradeMagicArmor.instance.damageMultiplyer, _target.TaggedObj, causedByPlayer: true);
- }
- }
- if (slowsFastEnemiesFor >= 0f && _target.TaggedObj.Tags.Contains(TagManager.ETag.FastMoving) && (bool)_target.PathfindMovement)
- {
- if (PerkManager.instance.IceMagicActive)
- {
- _target.PathfindMovement.Slow(slowsFastEnemiesFor * PerkManager.instance.iceMagic_SlowDurationMulti);
- }
- else
- {
- _target.PathfindMovement.Slow(slowsFastEnemiesFor);
- }
- }
- }
-
- public float CalculateDirectDamageOnTarget(TaggedObject _taggedObject, float _finalDamageMultiplyer = 1f)
- {
- return DamageModifyer.CalculateDamageOnTarget(_taggedObject, directDamage, _finalDamageMultiplyer);
- }
-
- public float CalculateSplashDamageOnTarget(TaggedObject _taggedObject, float _finalDamageMultiplyer = 1f)
- {
- return DamageModifyer.CalculateDamageOnTarget(_taggedObject, splashDamage, _finalDamageMultiplyer);
- }
-
- public static float CalculateDamageGeneral(TaggedObject _taggedObject, List<DamageModifyer> directDamage, float _finalDamageMultiplyer = 1f)
- {
- return DamageModifyer.CalculateDamageOnTarget(_taggedObject, directDamage, _finalDamageMultiplyer);
- }
-}
diff --git a/GameCode/WeaponEquipper.cs b/GameCode/WeaponEquipper.cs
deleted file mode 100644
index d1aac04..0000000
--- a/GameCode/WeaponEquipper.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-using UnityEngine;
-
-public class WeaponEquipper : MonoBehaviour
-{
- public Equippable requiredWeapon;
-
- public ManualAttack activeWeapon;
-
- public ManualAttack passiveWeapon;
-
- public GameObject visuals;
-
- public PlayerAttackTargetFacer facer;
-
- private void Start()
- {
- if (!PerkManager.IsEquipped(requiredWeapon))
- {
- Object.Destroy(base.gameObject);
- return;
- }
- GetComponentInParent<PlayerInteraction>().EquipWeapon(activeWeapon);
- GetComponentInParent<PlayerUpgradeManager>();
- GetComponentInParent<PlayerAttack>().AssignManualAttack(activeWeapon);
- base.gameObject.AddComponent<PlayerWeaponVisuals>().Init(visuals, passiveWeapon);
- facer.AssignAttack(passiveWeapon);
- Object.Destroy(this);
- }
-}
diff --git a/GameCode/Wiggler.cs b/GameCode/Wiggler.cs
deleted file mode 100644
index c287088..0000000
--- a/GameCode/Wiggler.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using UnityEngine;
-
-public class Wiggler : MonoBehaviour
-{
- public Transform parentOverride;
-
- [SerializeField]
- private float acceleration = 50f;
-
- [SerializeField]
- [Range(0f, 1f)]
- private float speedDamping = 0.5f;
-
- [SerializeField]
- private float positionDampingMultiplyer = 1f;
-
- private Vector3 parentOffset;
-
- public Vector3 velocity { get; set; }
-
- private void Start()
- {
- if (parentOverride == null)
- {
- parentOverride = base.transform.parent;
- }
- parentOffset = Quaternion.Inverse(parentOverride.rotation) * (base.transform.position - parentOverride.position);
- base.transform.SetParent(null);
- }
-
- private void Update()
- {
- if (!parentOverride)
- {
- Object.Destroy(base.gameObject);
- return;
- }
- Vector3 vector = parentOverride.position + parentOverride.rotation * parentOffset;
- base.transform.position = Vector3.Lerp(vector, base.transform.position, Mathf.Pow(speedDamping, Time.deltaTime * positionDampingMultiplyer));
- Vector3 vector2 = vector - base.transform.position;
- float num = Time.deltaTime * acceleration * vector2.magnitude;
- velocity += vector2.normalized * num;
- velocity *= Mathf.Pow(speedDamping, Time.deltaTime);
- base.transform.position += velocity * Time.deltaTime;
- }
-}
diff --git a/GameCode/WigglerAnimatedVelocity.cs b/GameCode/WigglerAnimatedVelocity.cs
deleted file mode 100644
index 2106d1b..0000000
--- a/GameCode/WigglerAnimatedVelocity.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using UnityEngine;
-
-public class WigglerAnimatedVelocity : MonoBehaviour
-{
- [SerializeField]
- private int stateCondition = -1;
-
- [SerializeField]
- private Vector3 direction;
-
- [SerializeField]
- private float timeSpeed = 1f;
-
- private Wiggler wiggler;
-
- private float time;
-
- private WigglerAnimationState wigglerAnimState;
-
- private void Start()
- {
- wiggler = GetComponent<Wiggler>();
- wigglerAnimState = wiggler.parentOverride.GetComponentInParent<WigglerAnimationState>();
- time = Random.Range(0f, 1000f);
- }
-
- private void Update()
- {
- if (stateCondition == -1)
- {
- PerformUpdate();
- }
- else if ((bool)wigglerAnimState && wigglerAnimState.animationState == stateCondition)
- {
- PerformUpdate();
- }
- }
-
- private void PerformUpdate()
- {
- time += Time.deltaTime * timeSpeed;
- float num = Mathf.Sin(time) * Time.deltaTime;
- wiggler.velocity += wiggler.parentOverride.rotation * direction * num;
- }
-}
diff --git a/GameCode/WigglerAnimationState.cs b/GameCode/WigglerAnimationState.cs
deleted file mode 100644
index 90266a7..0000000
--- a/GameCode/WigglerAnimationState.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using UnityEngine;
-
-public class WigglerAnimationState : MonoBehaviour
-{
- public int animationState = -1;
-}
diff --git a/GameCode/WigglerVelocity.cs b/GameCode/WigglerVelocity.cs
deleted file mode 100644
index 4c9f4a5..0000000
--- a/GameCode/WigglerVelocity.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using UnityEngine;
-
-public class WigglerVelocity : MonoBehaviour
-{
- [SerializeField]
- private int stateCondition = -1;
-
- [SerializeField]
- private Vector3 direction;
-
- private Wiggler wiggler;
-
- private float time;
-
- private WigglerAnimationState wigglerAnimState;
-
- private void Start()
- {
- wiggler = GetComponent<Wiggler>();
- wigglerAnimState = wiggler.parentOverride.GetComponentInParent<WigglerAnimationState>();
- time = Random.Range(0f, 1000f);
- }
-
- private void Update()
- {
- if (stateCondition == -1)
- {
- PerformUpdate();
- }
- else if ((bool)wigglerAnimState && wigglerAnimState.animationState == stateCondition)
- {
- PerformUpdate();
- }
- }
-
- private void PerformUpdate()
- {
- wiggler.velocity += wiggler.parentOverride.rotation * direction * Time.deltaTime;
- }
-}
diff --git a/GameCode/WishlistButton.cs b/GameCode/WishlistButton.cs
deleted file mode 100644
index b4492ff..0000000
--- a/GameCode/WishlistButton.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using UnityEngine;
-
-public class WishlistButton : MonoBehaviour
-{
- public void Wishlist()
- {
- Application.OpenURL("steam://openurl/https://store.steampowered.com/app/2239150/Thronefall/");
- }
-}