├── Assets
├── UIInventoryItemListManager.cs
├── PlayerModData
│ ├── PlayerFileDefs.txt
│ ├── myItems.xml
│ └── myStatusMod.xml
├── ResolutionDialog
│ ├── example.png
│ ├── NewResolutionDialogAssembly.asmdef
│ ├── Scripts
│ │ ├── Settings.cs
│ │ └── Controller
│ │ │ ├── FpsLabel.cs
│ │ │ ├── CreateEventSystemIfNoneExists.cs
│ │ │ ├── ButtonHandler.cs
│ │ │ └── PopupHandler.cs
│ ├── README.md
│ ├── LICENSE
│ └── Todos.md
├── Resources
│ ├── Abilities
│ │ └── XML
│ │ │ ├── abilities_emblems.xml
│ │ │ └── multidlc_abilities.xml
│ ├── BakedData
│ │ └── bakedAbilities.dat
│ ├── SpriteEffects
│ │ ├── TVShader.cs
│ │ ├── PivotHolder.prefab
│ │ ├── FireBombEffectSystem.prefab
│ │ └── AfterImageCreator.prefab
│ ├── DLCResources
│ │ ├── DLC1
│ │ │ ├── NPCs
│ │ │ │ └── Shops
│ │ │ │ │ └── exp_shops.xml
│ │ │ ├── Dialogs
│ │ │ │ └── XML
│ │ │ │ │ ├── dialog_shara_preboss2_banditshelp.xml
│ │ │ │ │ ├── dialog_shara_boss1_prefight.xml
│ │ │ │ │ └── dialog_shara_preboss2_passage.xml
│ │ │ ├── Localization
│ │ │ │ └── perchance_mystery_item_flavor_table_jp_japan.txt
│ │ │ ├── StatusEffects
│ │ │ │ └── BakedStatusEffectDefinitions_DLC1.cs
│ │ │ └── DungeonRooms
│ │ │ │ └── XML
│ │ │ │ └── exp_specialrooms.xml
│ │ └── DLC2
│ │ │ ├── NPCs
│ │ │ └── XML
│ │ │ │ └── exp2_npcs.xml
│ │ │ └── StatusEffects
│ │ │ └── BakedStatusEffectDefinitions_DLC2.cs
│ ├── ShepPrefabs
│ │ ├── CSCBlockHolder.prefab
│ │ ├── SubmenuAnchorObject.prefab
│ │ └── TooltipAnchorRight.prefab
│ ├── MyNewGrayscale.shader
│ ├── SpriteGrayscale.shader
│ ├── StatusEffects
│ │ └── XML
│ │ │ └── multidlc_groundeffects.xml
│ ├── MapObjects
│ │ └── SpriteFontManager.prefab
│ └── CampaignSelectGrayscaler.shader
├── Image Reference
│ ├── teleporter_puzzle_map.png
│ └── robot_dungeon_bridge_area_combat_sector.jpg
├── SimpleDontDestroy.cs
├── ISelectableUIObject.cs
├── TDSlider.cs
├── ConditionalLocalizeAllChildrenToChinese.cs
├── ScrollbarResizerComponent.cs
├── ChampionData.cs
├── PhoneScriptManager.cs
├── FullScreenTexture.cs
├── FinalHubAreaStoryComponent.cs
├── TDScripts
│ ├── CustomFunctionsFromXML
│ │ ├── DialogCutsceneFunctions.cs
│ │ ├── ItemNameGenerationFunctions.cs
│ │ ├── MoveActorCustomFunctions.cs
│ │ └── PostSummonFunctions.cs
│ ├── AbilityEffects
│ │ └── CombatBiography.cs
│ ├── CraftingScripts
│ │ ├── CraftingRecipe_OrbAndJobScrollToSkillOrb.cs
│ │ ├── CraftingRecipe_ThreeOffhandsToOffhand.cs
│ │ ├── CraftingRecipe_LucidOrbsToRegular.cs
│ │ ├── CraftingRecipe_LucidShardsToLucidOrb.cs
│ │ ├── CraftingRecipe_ThreeSeedsToRandomSeed.cs
│ │ ├── CraftingRecipe_ThreeCommonArmorToRandomArmor.cs
│ │ ├── CraftingRecipe_TwoRelicsToRelic.cs
│ │ ├── CraftingRecipe_ThreeCommonWeaponsToRandomWeapon.cs
│ │ ├── CraftingRecipe_GemLeavesToGems.cs
│ │ ├── CraftingRecipe_ThreeScrollsAndGemToScroll.cs
│ │ ├── CraftingRecipe_PotionsToElixir.cs
│ │ └── CraftingRecipe_TwoAccessoriesAndGemToAccessory.cs
│ └── DragonEvents
│ │ └── DragonLimitBreaks.cs
├── SDK Mods
│ └── read_file_chunk.cpp
├── radialmenu_assets.manifest
├── GenericButtonForUIObject.cs
├── PlatformHotbarSelectorLogic.cs
├── TextHelper.cs
├── Introloop
│ └── Scripts
│ │ ├── PositiveFloatAttribute.cs
│ │ ├── IntroloopLogger.cs
│ │ ├── ImportantIntAttribute.cs
│ │ ├── IntroloopAudio.cs
│ │ └── IntroloopSettings.cs
├── OptionLabelElemental.cs
├── InheritSpriteOrderScript.cs
├── GameLogScript_DataStructures.cs
├── GameModifierData.cs
├── UITopArea.cs
├── AutoRepoolSelf.cs
├── SimpleUICenterScript.cs
├── AutoDisableRenderer.cs
├── UIFilledBarScript.cs
├── ParticleScript.cs
├── Standard Assets
│ ├── Editor
│ │ ├── AssetBundleManager
│ │ │ └── Editor
│ │ │ │ └── AssetbundlesMenuItems.cs
│ │ └── ImageEffects
│ │ │ └── CreaseShadingEditor.cs
│ └── AssetBundleManager
│ │ └── Utility.cs
├── TDCharacterValidator.cs
├── GameLogDynamicCanvasScript.cs
├── PetListButton.cs
├── HUDPetReadout.cs
├── TDScrollbarManager.cs
├── JobAbilButtonScript.cs
├── TDSceneManager.cs
├── SnackBagUIScript.cs
├── Switch_SaveIconDisplay.cs
├── analog_move_tutorial.manifest
├── radialmenu_object.manifest
├── GridPrefabFollower.cs
├── ScriptableObject_MusicData.cs
├── OptionsUISliderComponent.cs
├── LanguageSelectorButton.cs
├── SpriteChildVisibility.cs
├── SwitchInputFieldCommunicator.cs
├── WrathBarScript.cs
├── ConditionalLocalizeToChineseFont.cs
├── MusicTrackData.cs
├── exp_abilities_monster.xml
├── UIManagerScript_PrettyLoading.cs
├── UIManagerScript_LoadingBar.cs
├── Pathfinding.cs
├── TDExpansion.cs
├── GameMasterScript_StringInitialization.cs
├── AfterImageEffectScript.cs
├── StringManager_TagManagement.cs
├── SimpleLightCycle.cs
├── CanvasParallaxScript.cs
├── FastTravelStuff.cs
├── GraphicsAndFramerateManager.cs
├── AARandomFunctionScript.cs
├── LogoSceneFader.cs
├── FastRNG.cs
├── SplashArtComponent.cs
├── GameMasterScript_Casino.cs
├── CanvasGroupFader.cs
├── SpriteFontManager.prefab
├── GameMasterScript_CutsceneAndAnimStates.cs
├── LogosSettings.lighting
├── MainSettings.lighting
├── GameMasterScript_TurnEnumerators.cs
├── OscillateMovement.cs
├── MasteriesBakedData.cs
├── MapTileDisplayable.cs
├── GameMasterScript_TurnEndFunctions.cs
├── OutOfBoundsUICheckScript.cs
├── PlayerMods_ListEntry.cs
├── CraftingRecipe_LucidOrbAndGemToRandomLucid.cs
├── ParallaxHandler.cs
├── AutoEatFoodLogic.cs
├── GameMasterScript_DataDictionaries.cs
├── ElementalAuraManager.cs
├── SpriteFontManager.cs
├── TooltipScript.cs
├── PlayerHUDStatsComponent.cs
├── GameMasterScript_ApplicationManagement.cs
├── ChampionMod.cs
├── TextEffects.cs
├── AuraAnimateScript.cs
├── UIManager.prefab
└── DLCManager.prefab
├── README.md
└── .gitignore
/Assets/UIInventoryItemListManager.cs:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Assets/PlayerModData/PlayerFileDefs.txt:
--------------------------------------------------------------------------------
1 | myStatusMod.xml STATUSEFFECTS
2 | myItems.xml ITEMS
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaversa/tangledeep/HEAD/Assets/ResolutionDialog/example.png
--------------------------------------------------------------------------------
/Assets/Resources/Abilities/XML/abilities_emblems.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Assets/Resources/BakedData/bakedAbilities.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaversa/tangledeep/HEAD/Assets/Resources/BakedData/bakedAbilities.dat
--------------------------------------------------------------------------------
/Assets/Image Reference/teleporter_puzzle_map.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaversa/tangledeep/HEAD/Assets/Image Reference/teleporter_puzzle_map.png
--------------------------------------------------------------------------------
/Assets/Image Reference/robot_dungeon_bridge_area_combat_sector.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaversa/tangledeep/HEAD/Assets/Image Reference/robot_dungeon_bridge_area_combat_sector.jpg
--------------------------------------------------------------------------------
/Assets/Resources/Abilities/XML/multidlc_abilities.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | skill_dualwielderbonus1
5 | dualwielderbonus1,dualwielderbonus1
6 |
7 |
--------------------------------------------------------------------------------
/Assets/SimpleDontDestroy.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class SimpleDontDestroy : MonoBehaviour {
6 |
7 | // Use this for initialization
8 | void Start () {
9 | DontDestroyOnLoad(gameObject);
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/ISelectableUIObject.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using UnityEngine;
5 |
6 | public interface ISelectableUIObject
7 | {
8 | Sprite GetSpriteForUI();
9 | string GetNameForUI();
10 | string GetInformationForTooltip();
11 | }
12 |
--------------------------------------------------------------------------------
/Assets/TDSlider.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class TDSlider : Slider
7 | {
8 | public void OnMove()
9 | {
10 | // IGNORE KEY INPUT
11 | Debug.Log("Ignore normal axis input.");
12 | }
13 | }
--------------------------------------------------------------------------------
/Assets/ConditionalLocalizeAllChildrenToChinese.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class ConditionalLocalizeAllChildrenToChinese : MonoBehaviour
6 | {
7 | // Start is called before the first frame update
8 | void Start()
9 | {
10 |
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/ScrollbarResizerComponent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class ScrollbarResizerComponent : MonoBehaviour {
7 |
8 | // Use this for initialization
9 | void Start () {
10 | GetComponent().size = 0;
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/Assets/ChampionData.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public struct ChampionData
6 | {
7 | public List name1;
8 | public List name2;
9 | public List name3;
10 | public List name4;
11 | public List name5;
12 | public List name6;
13 | }
--------------------------------------------------------------------------------
/Assets/PhoneScriptManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class PhoneScriptManager : MonoBehaviour {
7 |
8 | public Canvas phoneCanvas;
9 |
10 | #if UNITY_IPHONE || UNITY_ANDROID
11 | private void Awake()
12 | {
13 |
14 | }
15 | #endif
16 | }
17 |
--------------------------------------------------------------------------------
/Assets/FullScreenTexture.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 |
4 | public class FullScreenTexture : MonoBehaviour
5 | {
6 | void Update()
7 | {
8 | float height = Camera.main.orthographicSize * 2f;
9 | float width = Camera.main.aspect * height;
10 | transform.localScale = new Vector3(width, height, 1f);
11 | }
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/Assets/FinalHubAreaStoryComponent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | //The final hub area has four sub-areas that can be cleared to change how the
6 | //final boss fights play out. This component exists to manage some of the
7 | //interactables in those hubs and
8 | public class FinalHubAreaStoryComponent : MonoBehaviour
9 | {
10 |
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CustomFunctionsFromXML/DialogCutsceneFunctions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | // Functions called with no arguments by DialogEventScripts
6 | // Otherwise, these are no different than any other Cutscenes. This is just a place to organize them better.
7 |
8 | public partial class Cutscenes : MonoBehaviour
9 | {
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/Assets/SDK Mods/read_file_chunk.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | extern "C" {
5 |
6 | void TestPenif( const char* words)
7 | {
8 | NN_LOG(words);
9 | }
10 |
11 | void ReadFileChunk(nn::fs::FileHandle handle, int64_t offset, void* buffer, size_t size, int64_t buffer_offset)
12 | {
13 | nn::fs::ReadFile(handle, offset, (uint8_t*)buffer + buffer_offset, size);
14 | }
15 |
16 | }
--------------------------------------------------------------------------------
/Assets/TDScripts/AbilityEffects/CombatBiography.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | // *thonk*
6 |
7 | public enum CombatActions { MOVE, ATTACK, COUNT }
8 |
9 | public class CombatBiography
10 | {
11 |
12 | // Use this for initialization
13 | void Start () {
14 |
15 | }
16 |
17 | // Update is called once per frame
18 | void Update () {
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Assets/PlayerModData/myItems.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | My New Accessory
6 | accessory_myitem1
7 | This is a description for my accessory.
8 | MySpriteLoL
9 | 0
10 | 1.3
11 | 100
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Assets/radialmenu_assets.manifest:
--------------------------------------------------------------------------------
1 | ManifestFileVersion: 0
2 | CRC: 2198453123
3 | Hashes:
4 | AssetFileHash:
5 | serializedVersion: 2
6 | Hash: a4d1b1e5127daff9b7a21859b571dd7f
7 | TypeTreeHash:
8 | serializedVersion: 2
9 | Hash: ea5a42e0fd8ea905efa7aa926a3b8944
10 | HashAppended: 0
11 | ClassTypes:
12 | - Class: 28
13 | Script: {instanceID: 0}
14 | - Class: 213
15 | Script: {instanceID: 0}
16 | Assets:
17 | - Assets/Resources/Spritesheets/radial_menu_sprites.png
18 | Dependencies: []
19 |
--------------------------------------------------------------------------------
/Assets/GenericButtonForUIObject.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class GenericButtonForUIObject : MonoBehaviour
7 | {
8 | public UIManagerScript.UIObject myUIobject;
9 |
10 | public void OnHoverAction()
11 | {
12 | if (!GameMasterScript.gameLoadSequenceCompleted) return;
13 |
14 | UIManagerScript.ChangeUIFocusAndAlignCursor(myUIobject);
15 | }
16 |
17 | public void OnExitAction()
18 | {
19 |
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/Assets/Resources/SpriteEffects/TVShader.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | [ExecuteInEditMode]
4 | public class TVShader : MonoBehaviour
5 | {
6 | public Material material;
7 |
8 | // Use this for initialization
9 | void Start()
10 | {
11 | //material = new Material(Shader.Find("Custom/CRTShader"));
12 | }
13 |
14 | public void OnRenderImage(RenderTexture source, RenderTexture destination)
15 | {
16 | material.SetTexture("_MainTex", source);
17 | Graphics.Blit(source, destination, material);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Assets/PlatformHotbarSelectorLogic.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class PlatformHotbarSelectorLogic : MonoBehaviour {
6 |
7 | public GameObject gamepadVersion;
8 |
9 | public GameObject kbMouseVersion;
10 |
11 | private void Awake()
12 | {
13 | if (PlatformVariables.USE_GAMEPAD_ONLY_HOTBAR_STYLE)
14 | {
15 | gamepadVersion.SetActive(true);
16 | }
17 | else
18 | {
19 | kbMouseVersion.SetActive(true);
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Hello! Welcome to the codebase for TANGLEDEEP, a game by Impact Gameworks. This repository consists of all the game's code and resource (XML) files, as well as prefabs. However it does not include any audio, images, plugins, etc.
2 |
3 | The purpose of this repo is to share some insight into how the game works to interested parties, and - maybe - get a little help fixing some logical bugs that I can then integrate into the latest Steam, Switch, and PS4 releases.
4 |
5 | If you have any questions, please contact me below!
6 |
7 | Andrew Aversa
8 | Lead Developer
9 | admin@impactgameworks.com
10 |
--------------------------------------------------------------------------------
/Assets/PlayerModData/myStatusMod.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | status_playermadestatus1
6 | This is the displayname
7 | This is the description
8 | This is the log text
9 | 1
10 | SkillIcons_81
11 | 1
12 |
13 | 1
14 |
15 | 1
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/NewResolutionDialogAssembly.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "NewResolutionDialog",
3 | "references": [],
4 | "includePlatforms": [
5 | "Editor",
6 | "LinuxStandalone64",
7 | "macOSStandalone",
8 | "WSA",
9 | "WindowsStandalone32",
10 | "WindowsStandalone64"
11 | ],
12 | "excludePlatforms": [],
13 | "allowUnsafeCode": false,
14 | "overrideReferences": false,
15 | "precompiledReferences": [],
16 | "autoReferenced": true,
17 | "defineConstraints": [],
18 | "versionDefines": [],
19 | "noEngineReferences": false
20 | }
--------------------------------------------------------------------------------
/Assets/TextHelper.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | [System.Serializable]
7 | public class TextHelper : MonoBehaviour {
8 |
9 | public bool isDirty;
10 | public TextMeshProUGUI myTMPro;
11 |
12 | // Update is called once per frame
13 | void Update () {
14 | if (isDirty)
15 | {
16 | transform.position = transform.position;
17 | myTMPro.SetText(myTMPro.text);
18 | isDirty = false;
19 | }
20 | }
21 |
22 | public void SetDirty()
23 | {
24 | isDirty = true;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/Introloop/Scripts/PositiveFloatAttribute.cs:
--------------------------------------------------------------------------------
1 | /*
2 | /// Copyright (c) 2015 Sirawat Pitaksarit, Exceed7 Experiments LP
3 | /// http://www.exceed7.com/introloop
4 | */
5 |
6 | #if UNITY_EDITOR
7 | using UnityEditor;
8 | #endif
9 | using UnityEngine;
10 |
11 | public class PositiveFloatAttribute : PropertyAttribute {
12 |
13 | public readonly string unit;
14 |
15 | public PositiveFloatAttribute ()
16 | {
17 | }
18 |
19 | public PositiveFloatAttribute (string unit)
20 | {
21 | this.unit = unit;
22 | }
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/Assets/OptionLabelElemental.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | public class OptionLabelElemental : MonoBehaviour {
7 |
8 | public TextMeshProUGUI label_damage;
9 | public TextMeshProUGUI label_resist;
10 |
11 | // Use this for initialization
12 | void Start () {
13 | label_damage.text = StringManager.GetString("misc_generic_damage");
14 | label_resist.text = StringManager.GetString("misc_generic_defense");
15 | FontManager.LocalizeMe(label_damage, TDFonts.WHITE);
16 | FontManager.LocalizeMe(label_resist, TDFonts.WHITE);
17 | }
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/Assets/InheritSpriteOrderScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class InheritSpriteOrderScript : MonoBehaviour {
6 |
7 | SpriteRenderer mySR;
8 | SpriteRenderer parentSR;
9 | bool initialized;
10 |
11 | // Use this for initialization
12 | void Awake () {
13 | mySR = GetComponent();
14 | parentSR = transform.parent.GetComponent();
15 | initialized = true;
16 | }
17 |
18 | // Update is called once per frame
19 | void Update () {
20 | if (!initialized) return;
21 |
22 | mySR.sortingOrder = parentSR.sortingOrder;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/Assets/GameLogScript_DataStructures.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class GameLogScript
6 | {
7 | public class DividerDataPack
8 | {
9 | public int turnInserted;
10 | public GameObject obj;
11 | }
12 | public struct LogSpacingAndFontInfo
13 | {
14 | public int iLineSpacing;
15 | public int iFontSize;
16 | public int iMaxLinesOnScreen;
17 | public LogSpacingAndFontInfo(int spacing, int size, int maxOnScreen)
18 | {
19 | iLineSpacing = spacing;
20 | iFontSize = size;
21 | iMaxLinesOnScreen = maxOnScreen;
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/Assets/TDScripts/CustomFunctionsFromXML/ItemNameGenerationFunctions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class ItemNameGenerationFunctions
6 | {
7 |
8 | public static string BuildRuneOfKnowledgeName(Item itemBeingNamed)
9 | {
10 | string baseName = StringManager.GetString("exp_item_runeofknowledge");
11 | string abilRef = itemBeingNamed.ReadActorDataString("teachskill");
12 | AbilityScript template = GameMasterScript.masterAbilityList[abilRef];
13 | baseName += ": " + template.abilityName;
14 | baseName = UIManagerScript.goldHexColor + baseName + "";
15 | return baseName;
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Scripts/Settings.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | namespace NewResolutionDialog.Scripts
6 | {
7 | public enum ResolutionDialogStyle
8 | {
9 | ///
10 | /// Use this as a first scene. Cannot be reopened once closed.
11 | ///
12 | LaunchDialog,
13 |
14 | ///
15 | /// Use this as a popup. Open it by pressing the corresponding key.
16 | ///
17 | PopupDialog
18 | }
19 |
20 | public class Settings : MonoBehaviour
21 | {
22 | public ResolutionDialogStyle dialogStyle = ResolutionDialogStyle.LaunchDialog;
23 | }
24 | }
--------------------------------------------------------------------------------
/Assets/GameModifierData.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class GameModifierData
6 | {
7 | public GameModifiers mod;
8 | public string modifierDescription;
9 | public bool enableAchievements;
10 |
11 | public GameModifierData(GameModifiers whichMod, bool chievos)
12 | {
13 | mod = whichMod;
14 | enableAchievements = chievos;
15 | }
16 |
17 | public string GetModifierDescription()
18 | {
19 | if (string.IsNullOrEmpty(modifierDescription))
20 | {
21 | modifierDescription = StringManager.GetString("gamemods_" + mod.ToString().ToLowerInvariant());
22 | }
23 | return modifierDescription;
24 | }
25 | }
--------------------------------------------------------------------------------
/Assets/UITopArea.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 | using UnityEngine.UI;
6 |
7 | [System.Serializable]
8 | public class UITopArea : MonoBehaviour {
9 |
10 | public TextMeshProUGUI charShortcut;
11 | public TextMeshProUGUI eqShortcut;
12 | public TextMeshProUGUI invShortcut;
13 | public TextMeshProUGUI skillShortcut;
14 | public TextMeshProUGUI rumorShortcut;
15 | public TextMeshProUGUI optionsShortcut;
16 |
17 | public TextMeshProUGUI[] shortcutText;
18 |
19 | void Start()
20 | {
21 | shortcutText = new TextMeshProUGUI[] { charShortcut, eqShortcut, invShortcut, skillShortcut, rumorShortcut, optionsShortcut };
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/Assets/Introloop/Scripts/IntroloopLogger.cs:
--------------------------------------------------------------------------------
1 | /*
2 | /// Copyright (c) 2015 Sirawat Pitaksarit, Exceed7 Experiments LP
3 | /// http://www.exceed7.com/introloop
4 | */
5 |
6 | using UnityEngine;
7 | using System.Collections;
8 |
9 | public static class IntroloopLogger {
10 |
11 | public static void Log(string logMessage)
12 | {
13 | if(IntroloopPlayer.Instance.introloopSettings.logInformation)
14 | {
15 | Debug.Log("[Introloop] " + logMessage);
16 | }
17 | }
18 |
19 | public static void LogError(string logMessage)
20 | {
21 | if(IntroloopPlayer.Instance.introloopSettings.logInformation)
22 | {
23 | Debug.Log("[Introloop] " + logMessage);
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/README.md:
--------------------------------------------------------------------------------
1 | # UnityResolutionDialog
2 |
3 | 
4 |
5 | Replacement for Unity's built-in resolution dialog (aka Screen Selector) that was removed in Unity 2019.3. Works both up front (simply make it the first scene) and as a popup dialog (default key: ESC). Intended for development / testing purposes but can also be used in production.
6 |
7 | # Installation
8 | Add this dependency to your ``manifest.json`` located at ``/Packages/manifest.json``:
9 | ```
10 | {
11 | ...
12 | "dependencies": {
13 | ...
14 | "com.sitterheim.unityresolutiondialog": "https://github.com/sitterheim/UnityResolutionDialog.git#release/stable"
15 | }
16 | ...
17 | }
18 | ```
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/NPCs/Shops/exp_shops.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | shop_randomany
5 |
6 | casino_1
7 | 1
8 | 1
9 | 99
10 | 25
11 | 30
12 | 0.75
13 | 3
14 | 0.1
15 | 1
16 | 0
17 |
18 | 10
19 | 120
20 | 200
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/Assets/AutoRepoolSelf.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class AutoRepoolSelf : MonoBehaviour
6 | {
7 | public float timeUntilRepool = 5f;
8 |
9 | public string poolName;
10 |
11 | float timeAtEnable;
12 |
13 | bool waitingToGetRepooled;
14 |
15 | void OnEnable()
16 | {
17 | timeAtEnable = Time.time;
18 | waitingToGetRepooled = true;
19 | }
20 |
21 | // Update is called once per frame
22 | void Update()
23 | {
24 | if (!waitingToGetRepooled) return;
25 |
26 | if (Time.time - timeAtEnable >= timeUntilRepool)
27 | {
28 | waitingToGetRepooled = false;
29 | GameMasterScript.ReturnToStack(gameObject, poolName);
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Assets/SimpleUICenterScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class SimpleUICenterScript : MonoBehaviour {
7 |
8 | int frames = 0;
9 | public bool xCenterOnly;
10 | RectTransform rt;
11 |
12 | // Use this for initialization
13 | void Start () {
14 | rt = gameObject.GetComponent();
15 | }
16 |
17 | // Update is called once per frame
18 | void Update () {
19 | frames++;
20 | if (frames >= 5)
21 | {
22 | float yValue = rt.anchoredPosition.y;
23 | if (!xCenterOnly)
24 | {
25 | yValue = 0f;
26 | }
27 | rt.anchoredPosition = new Vector2(0f, yValue);
28 | frames = 0;
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/AutoDisableRenderer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class AutoDisableRenderer : MonoBehaviour
6 | {
7 |
8 | public SpriteRenderer myRenderer;
9 |
10 | public float disableAfterSeconds;
11 |
12 | float timeAtEnable;
13 |
14 | bool finished;
15 |
16 | ///
17 | /// This function is called when the object becomes enabled and active.
18 | ///
19 | void OnEnable()
20 | {
21 | timeAtEnable = Time.time;
22 | finished = false;
23 | }
24 |
25 | void Update()
26 | {
27 | if (finished) return;;
28 | if (Time.time - timeAtEnable >= disableAfterSeconds)
29 | {
30 | myRenderer.enabled = false;
31 | finished = true;
32 | }
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/Assets/UIFilledBarScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using TMPro;
6 |
7 | [System.Serializable]
8 | public class UIFilledBarScript : MonoBehaviour {
9 |
10 | public Image fillbar;
11 | public Image iconRef;
12 | public TextMeshProUGUI textLabel;
13 | public TextMeshProUGUI textValue;
14 |
15 | // #todo - Cool bar animations, glimmers, shines etc
16 |
17 | public void UpdateFillAmount(float percentage)
18 | {
19 | percentage = Mathf.Clamp(percentage, 0f, 1f);
20 | fillbar.fillAmount = percentage;
21 | }
22 |
23 | public void SetLabel(string text)
24 | {
25 | textLabel.text = text;
26 | }
27 |
28 | public void SetTextValue(string text)
29 | {
30 | textValue.text = text;
31 | }
32 |
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/Assets/ParticleScript.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 |
5 | public class ParticleScript : MonoBehaviour {
6 |
7 | private ParticleSystem ps;
8 | private Renderer rend;
9 | private float timer;
10 |
11 | public float lifetime;
12 |
13 | // Use this for initialization
14 | void Start () {
15 | ps = GetComponent();
16 | rend = ps.GetComponent();
17 | rend.sortingLayerName = "Foreground";
18 | }
19 |
20 | void Awake ()
21 | {
22 | timer = 0.0f;
23 | }
24 |
25 | // Update is called once per frame
26 | void Update () {
27 | if ((ps != null) && (lifetime > 0))
28 | {
29 | timer += Time.deltaTime;
30 | if (timer >= lifetime)
31 | {
32 | Destroy(gameObject);
33 | }
34 | }
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Scripts/Controller/FpsLabel.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | #pragma warning disable 0649
5 |
6 | namespace NewResolutionDialog.Scripts.Controller
7 | {
8 | public class FpsLabel : MonoBehaviour
9 | {
10 | [SerializeField] Text fpsLabel;
11 | [SerializeField] float updateRateSeconds = 0.5f;
12 |
13 | int frameCount = 0;
14 | float deltaTime = 0f;
15 | float fps = 0f;
16 |
17 | void Update()
18 | {
19 | frameCount++;
20 | deltaTime += Time.unscaledDeltaTime;
21 | if (deltaTime > updateRateSeconds)
22 | {
23 | fps = frameCount / deltaTime;
24 | frameCount = 0;
25 | deltaTime -= updateRateSeconds;
26 | }
27 |
28 | fpsLabel.text = string.Format("{0} fps", (int)(fps + 0.5f));
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/Standard Assets/Editor/AssetBundleManager/Editor/AssetbundlesMenuItems.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEditor;
3 | using System.Collections;
4 |
5 | namespace AssetBundles
6 | {
7 | public class AssetBundlesMenuItems
8 | {
9 | const string kSimulationMode = "Assets/AssetBundles/Simulation Mode";
10 |
11 | [MenuItem(kSimulationMode)]
12 | public static void ToggleSimulationMode ()
13 | {
14 | AssetBundleManager.SimulateAssetBundleInEditor = !AssetBundleManager.SimulateAssetBundleInEditor;
15 | }
16 |
17 | [MenuItem(kSimulationMode, true)]
18 | public static bool ToggleSimulationModeValidate ()
19 | {
20 | Menu.SetChecked(kSimulationMode, AssetBundleManager.SimulateAssetBundleInEditor);
21 | return true;
22 | }
23 |
24 | [MenuItem ("Assets/AssetBundles/Build AssetBundles")]
25 | static public void BuildAssetBundles ()
26 | {
27 | BuildScript.BuildAssetBundles();
28 | }
29 | }
30 | }
--------------------------------------------------------------------------------
/Assets/TDCharacterValidator.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | public class TDCharacterValidator : MonoBehaviour {
7 |
8 | static TMP_InputField myInputField;
9 | static TMP_FontAsset currentFont;
10 |
11 | void Awake()
12 | {
13 | if (myInputField == null)
14 | {
15 | myInputField = GetComponent();
16 | }
17 |
18 | if (myInputField != null)
19 | {
20 | myInputField.onValidateInput = ValidateInput;
21 | }
22 | }
23 |
24 | static char ValidateInput(string text, int charIndex, char addedChar)
25 | {
26 | if (currentFont == null)
27 | {
28 | currentFont = FontManager.GetFontAsset(TDFonts.WHITE);
29 | }
30 | return currentFont.HasCharacter(addedChar) ? addedChar : '?';
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Assets/GameLogDynamicCanvasScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class GameLogDynamicCanvasScript : MonoBehaviour {
6 |
7 | public bool activeState = true;
8 | public CanvasGroup myCG;
9 |
10 | // Update is called once per frame
11 | void Update () {
12 | if (activeState && UIManagerScript.AnyInteractableWindowOpenExceptDialog())
13 | {
14 | //Debug.Log("TURNED OFF");
15 | activeState = false;
16 | myCG.alpha = 0f;
17 | myCG.blocksRaycasts = false;
18 | }
19 | if (!activeState && !UIManagerScript.AnyInteractableWindowOpenExceptDialog())
20 | {
21 | //Debug.Log("TURNED ON");
22 | activeState = true;
23 | myCG.alpha = 1f;
24 | myCG.blocksRaycasts = true;
25 | }
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/Assets/PetListButton.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using TMPro;
6 |
7 | [System.Serializable]
8 | public class PetListButton : MonoBehaviour {
9 |
10 | public int indexOfButtonInList;
11 | public Image parentImage;
12 | public Image childImage;
13 | public TextMeshProUGUI childButtonText;
14 |
15 | // Use this for initialization
16 | void Start () {
17 |
18 | }
19 |
20 | public void PopulateButtonContents(Monster petMon)
21 | {
22 | if (petMon == null)
23 | {
24 | Debug.Log("Pet button " + indexOfButtonInList + " cannot populate null monster obj.");
25 | return;
26 | }
27 |
28 | string monsterText = "" + petMon.displayName + ", " + StringManager.GetString("misc_xp_level") + " " + petMon.myStats.GetLevel() + " " + petMon.myTemplate.monsterName + "\n";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/Assets/HUDPetReadout.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using TMPro;
6 |
7 | [System.Serializable]
8 | public class HUDPetReadout : MonoBehaviour {
9 |
10 | public Monster attachedMonster;
11 | public Image monsterSprite;
12 | public TextMeshProUGUI nameText;
13 | public TextMeshProUGUI healthText;
14 | public TextMeshProUGUI turnsText;
15 | public Image healthBar;
16 |
17 | public void StartConversation()
18 | {
19 | if (attachedMonster == null) return;
20 | if (GameMasterScript.IsGameInCutsceneOrDialog()) return;
21 | PetPartyUIScript.StartPetBehaviorConversationFromRef(attachedMonster);
22 | }
23 |
24 | void Start()
25 | {
26 | FontManager.LocalizeMe(nameText, TDFonts.WHITE);
27 | FontManager.LocalizeMe(healthText, TDFonts.WHITE);
28 | FontManager.LocalizeMe(turnsText, TDFonts.WHITE);
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/TDScrollbarManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TDScrollbarManager : MonoBehaviour {
6 |
7 | // Used for sub-windows within UI. If the mouse is in a special area, don't use normal TryScrollPool (etc) scrollbar calls.
8 | // In other words, this indicates if mouse is in a ScrollRect - override my custom functions
9 | public static bool mouseIsInSpecialScrollArea;
10 |
11 | public void MouseEnteredSpecialScrollArea()
12 | {
13 | mouseIsInSpecialScrollArea = true;
14 | }
15 |
16 | public void MouseExitedSpecialScrollArea()
17 | {
18 | mouseIsInSpecialScrollArea = false;
19 | }
20 |
21 | public static void SMouseEnteredSpecialScrollArea()
22 | {
23 | mouseIsInSpecialScrollArea = true;
24 | }
25 |
26 | public static void SMouseExitedSpecialScrollArea()
27 | {
28 | mouseIsInSpecialScrollArea = false;
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/JobAbilButtonScript.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 | using System.Collections;
4 |
5 | public class JobAbilButtonScript : MonoBehaviour {
6 |
7 | Button myButton;
8 | public int myID;
9 | public bool knownSkillList;
10 |
11 | // Use this for initialization
12 | void Start()
13 | {
14 | myButton = GetComponent();
15 | //myButton.onClick.AddListener(delegate () { ButtonClicked(); });
16 | }
17 |
18 | public void ButtonClicked()
19 | {
20 | if (!knownSkillList) {
21 | UIManagerScript.SetJobAbilityListPosition(myID);
22 | //UIManagerScript.singletonUIMS.TryLearnJobAbility(myID); // Does this need to pass my ID?
23 | }
24 | else {
25 | UIManagerScript.SetJobAbilityListPosition(myID);
26 | UIManagerScript.DialogCursorConfirm();
27 | }
28 | }
29 |
30 | void Destroy()
31 | {
32 | myButton.onClick.RemoveAllListeners();
33 | }
34 |
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Scripts/Controller/CreateEventSystemIfNoneExists.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.EventSystems;
3 |
4 | namespace NewResolutionDialog.Scripts.Controller
5 | {
6 | [ExecuteInEditMode]
7 | public class CreateEventSystemIfNoneExists : MonoBehaviour
8 | {
9 | private void Awake()
10 | {
11 | // in case prefab gets dropped onto a scene, check if an event system exists and if not, create one
12 | // this is to avoid any issues due to a scene not having an event system because adding prefabs to a scene
13 | // apparently doesn't add the event system even if the prefab contains a canvas with UI controls
14 | if (FindObjectOfType() == null)
15 | {
16 | new GameObject("EventSystem", typeof(EventSystem), typeof(StandaloneInputModule));
17 | Debug.Log("NewResolutionDialog added 'EventSystem' to Scene.");
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Assets/TDSceneManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.SceneManagement;
5 |
6 | public class TDSceneManager : MonoBehaviour
7 | {
8 | public static string bufferDestinationScene;
9 |
10 | void Start()
11 | {
12 | StartCoroutine(WaitThenActuallySwitchScenes());
13 | }
14 |
15 | IEnumerator WaitThenActuallySwitchScenes()
16 | {
17 | yield return new WaitForEndOfFrame();
18 | SceneManager.LoadScene(bufferDestinationScene);
19 | }
20 |
21 | public static void LoadScene(string sceneName)
22 | {
23 | bufferDestinationScene = sceneName;
24 | SceneManager.LoadScene("BufferScene");
25 | //SceneManager.LoadScene(sceneName);
26 | }
27 |
28 | public static AsyncOperation LoadSceneAsync(string sceneName)
29 | {
30 | bufferDestinationScene = sceneName;
31 | return SceneManager.LoadSceneAsync("BufferScene");
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/Assets/SnackBagUIScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using System;
6 |
7 | public class SnackBagUIScript : MonoBehaviour {
8 |
9 | public static SnackBagUIScript singleton;
10 |
11 | public void OpenSnackBagUIFromButton(int dummy)
12 | {
13 | if (GameMasterScript.IsGameInCutsceneOrDialog()) return;
14 |
15 | UIManagerScript.singletonUIMS.CloseHotbarNavigating();
16 | OpenSnackBagUI();
17 | }
18 |
19 | public void OpenSnackBagUI()
20 | {
21 | if (GameMasterScript.IsGameInCutsceneOrDialog()) return;
22 |
23 | //Debug.Log("Sort snack bag inventory.");
24 | GameMasterScript.heroPCActor.myInventory.SortMyInventory(InventorySortTypes.CONSUMABLETYPE, true, false);
25 |
26 | UIManagerScript.OpenSnackBagFullScreenUI();
27 | }
28 |
29 | // Use this for initialization
30 | void Start () {
31 | singleton = this;
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/Assets/Switch_SaveIconDisplay.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class Switch_SaveIconDisplay : MonoBehaviour
7 | {
8 | public Image myImage;
9 | public Animatable myAnim;
10 |
11 | private static Switch_SaveIconDisplay _instance;
12 |
13 | public void Start()
14 | {
15 | if (_instance != null)
16 | {
17 | Destroy(gameObject);
18 | return;
19 | }
20 |
21 | //Debug.Log("SaveIcon Start");
22 | _instance = this;
23 | _instance.enabled = true;
24 |
25 | }
26 |
27 | public static void Hide()
28 | {
29 | //if (Debug.isDebugBuild) Debug.Log("HIDE save icon display at " + Time.realtimeSinceStartup);
30 | _instance.myImage.enabled = false;
31 | }
32 |
33 | public static void Show()
34 | {
35 | //if (Debug.isDebugBuild) Debug.Log("SHOW save icon display at " + Time.realtimeSinceStartup);
36 | _instance.myImage.enabled = true;
37 | _instance.myAnim.SetAnim("Default");
38 | }
39 | }
--------------------------------------------------------------------------------
/Assets/analog_move_tutorial.manifest:
--------------------------------------------------------------------------------
1 | ManifestFileVersion: 0
2 | CRC: 3415009808
3 | Hashes:
4 | AssetFileHash:
5 | serializedVersion: 2
6 | Hash: 6046c6e942abe93593398a60971205c9
7 | TypeTreeHash:
8 | serializedVersion: 2
9 | Hash: 835ce58ae5c997f0c657e7aff4cae416
10 | HashAppended: 0
11 | ClassTypes:
12 | - Class: 1
13 | Script: {instanceID: 0}
14 | - Class: 28
15 | Script: {instanceID: 0}
16 | - Class: 114
17 | Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
18 | - Class: 114
19 | Script: {fileID: 11500000, guid: 6852f3cc0f78fb841ad1a7850a8e7756, type: 3}
20 | - Class: 115
21 | Script: {instanceID: 0}
22 | - Class: 213
23 | Script: {instanceID: 0}
24 | - Class: 222
25 | Script: {instanceID: 0}
26 | - Class: 224
27 | Script: {instanceID: 0}
28 | Assets:
29 | - Assets/Resources/Art/UI/tutorial_analog_movement.png
30 | - Assets/Resources/ShepPrefabs/prefab_tutorial_showstickmoveimage.prefab
31 | - Assets/Resources/Art/UI/tutorial_movement_main.png
32 | Dependencies: []
33 |
--------------------------------------------------------------------------------
/Assets/radialmenu_object.manifest:
--------------------------------------------------------------------------------
1 | ManifestFileVersion: 0
2 | CRC: 2499585566
3 | Hashes:
4 | AssetFileHash:
5 | serializedVersion: 2
6 | Hash: 42112ed736b92d2dcaf6b04e162278ce
7 | TypeTreeHash:
8 | serializedVersion: 2
9 | Hash: 0dade847ade8e932804962bc9249ae59
10 | HashAppended: 0
11 | ClassTypes:
12 | - Class: 1
13 | Script: {instanceID: 0}
14 | - Class: 114
15 | Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
16 | - Class: 114
17 | Script: {fileID: 11500000, guid: 8d1359148ee9b344e97149dfa607fc38, type: 3}
18 | - Class: 114
19 | Script: {fileID: 11500000, guid: 462c2bb4753875d459378b93e0fe774e, type: 3}
20 | - Class: 115
21 | Script: {instanceID: 0}
22 | - Class: 213
23 | Script: {instanceID: 0}
24 | - Class: 222
25 | Script: {instanceID: 0}
26 | - Class: 224
27 | Script: {instanceID: 0}
28 | Assets:
29 | - Assets/Resources/ShepPrefabs/Switch_RadialMenu.prefab
30 | Dependencies:
31 | - C:/TangledeepSwitch/TangledeepSwitchFall2018/AssetBundles/Switch/radialmenu_assets
32 |
--------------------------------------------------------------------------------
/Assets/Introloop/Scripts/ImportantIntAttribute.cs:
--------------------------------------------------------------------------------
1 | /*
2 | /// Copyright (c) 2015 Sirawat Pitaksarit, Exceed7 Experiments LP
3 | /// http://www.exceed7.com/introloop
4 | */
5 |
6 | #if UNITY_EDITOR
7 | using UnityEditor;
8 | #endif
9 | using UnityEngine;
10 |
11 | public class ImportantIntAttribute : PropertyAttribute {
12 |
13 | public readonly string unit;
14 | public readonly int stepSize;
15 |
16 | public ImportantIntAttribute ()
17 | {
18 | this.stepSize = 1;
19 | }
20 |
21 | public ImportantIntAttribute (int stepSize)
22 | {
23 | this.stepSize = stepSize;
24 | }
25 |
26 | public ImportantIntAttribute (string unit)
27 | {
28 | this.unit = unit;
29 | }
30 |
31 | public ImportantIntAttribute (string unit, int stepSize)
32 | {
33 | this.unit = unit;
34 | this.stepSize = stepSize;
35 | }
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/Assets/GridPrefabFollower.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 |
4 | [System.Serializable]
5 | public class GridPrefabFollower : MonoBehaviour {
6 |
7 | public float xOffset;
8 | public float yOffset;
9 | public bool quantizer;
10 |
11 | // Use this for initialization
12 | void Start () {
13 | //mc = GameObject.Find("Main Camera");
14 | }
15 |
16 | // Update is called once per frame
17 | void Update () {
18 | gameObject.transform.rotation = Quaternion.identity;
19 | return;
20 | /*
21 | if (mc != null)
22 | {
23 | if (((quantizer) && (mc.transform.position.x % 0.5f <= 0.001f)) || (!quantizer))
24 | {
25 | pos = mc.transform.position;
26 | pos.x += xOffset;
27 | pos.y += yOffset;
28 | pos.z = 0;
29 | transform.position = pos;
30 | gameObject.transform.rotation = Quaternion.identity;
31 | }
32 | }
33 | */
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/Dialogs/XML/dialog_shara_preboss2_banditshelp.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
30 |
--------------------------------------------------------------------------------
/Assets/ScriptableObject_MusicData.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | //Tangledeep specific info that wraps around a IntroloopAudioObject
6 | public class ScriptableObject_MusicData : ScriptableObject
7 | {
8 | [SerializeField]
9 | [Tooltip("The .wav to play.")]
10 | public AudioClip clip;
11 |
12 | [SerializeField]
13 | [Tooltip("Friendly name for track reference, ex (dungeontheme1)")]
14 | public string strReference;
15 |
16 | [SerializeField]
17 | [Tooltip("File name for actual track, ex (IRL DungeonMusic1 LP)")]
18 | public string strFileName;
19 |
20 | [SerializeField]
21 | [Tooltip("Should be added to the DungeonMusic list")]
22 | public bool isDungeonTrack;
23 |
24 | [SerializeField]
25 | [Tooltip("And if so, what is the minimum floor for this music to be played on?")]
26 | public int iMinimumFloor;
27 |
28 | [SerializeField]
29 | [Tooltip("Should be added to the ItemDream list")]
30 | public bool isItemDream;
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/Assets/OptionsUISliderComponent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class OptionsUISliderComponent : MonoBehaviour
7 | {
8 | public Slider mySlider;
9 |
10 | // Use this for initialization
11 | void Start ()
12 | {
13 | mySlider.enabled = false;
14 | }
15 |
16 | // Update is called once per frame
17 | void Update ()
18 | {
19 |
20 | }
21 |
22 | public void OnPointerEnter()
23 | {
24 | mySlider.enabled = true;
25 |
26 | //disable the focus if we're not it. This fixes the weirdness
27 | //players might see if they are bouncing from keyboard control
28 | //to mouse control. It will disable any other sliders
29 | //that have a highlight over them.
30 | if (UIManagerScript.highlightedOptionsObject != gameObject)
31 | {
32 | UIManagerScript.singletonUIMS.DeselectOptionsSlider(0);
33 | }
34 | }
35 |
36 | public void OnPointerExit()
37 | {
38 | mySlider.enabled = false;
39 | }
40 |
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/Assets/LanguageSelectorButton.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class LanguageSelectorButton : MonoBehaviour {
8 |
9 | public EGameLanguage lang;
10 | public LanguageSelector parent;
11 | public Image myImage;
12 | public bool isVectorFont;
13 |
14 | public Sprite GetSprite()
15 | {
16 | return myImage.sprite;
17 | }
18 |
19 | public void OnClick()
20 | {
21 | TDPlayerPrefs.SetString(GlobalProgressKeys.LANGUAGE, lang.ToString());
22 | StringManager.SetGameLanguage(lang);
23 | parent.OnLanguageSelected();
24 | PlayerOptions.WriteOptionsToFile();
25 | TDPlayerPrefs.Save();
26 | }
27 |
28 | public void OnClick_JP(int value)
29 | {
30 | TDPlayerPrefs.SetInt(GlobalProgressKeys.VECTOR_JP, value);
31 | OnClick();
32 | }
33 |
34 | public void OnClick_CN(int value)
35 | {
36 | TDPlayerPrefs.SetInt(GlobalProgressKeys.VECTOR_CN, 1);
37 | OnClick();
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/Localization/perchance_mystery_item_flavor_table_jp_japan.txt:
--------------------------------------------------------------------------------
1 | output
2 | [opening][feeling][ending]
3 |
4 | opening
5 | [noun]にこれをもらった。
6 | [noun]が...これを私に。
7 | 旅の途中で見つけたもの。
8 | 気づいたら...これがリュックに入っていた。
9 | [noun]から受け取ったもの。
10 | [noun]が持っていけって。
11 | [noun]にもらったもの。
12 | [noun]からのプレゼント。
13 | [noun]が...渡してきたもの。
14 | [noun]が...冒険に役立てろって。
15 | これをくれたのは[noun]だった。
16 | [noun]からの贈りもの。
17 |
18 | feeling
19 | すごく寂しい場所で...
20 | なぜか孤独を感じて...
21 | すごく寒いところで...
22 | なぜか胸が暖かくなって...
23 | すごく懐かしい気がして...
24 | 他には誰もいなくて...
25 | 状況はよく...覚えてない...
26 | あの時はなぜか...ゾクッとして...
27 | どういうわけか、虚しさを感じて...
28 | よくわからないけど、不安に駆られて...
29 | なぜか見覚えのある場所で...
30 | あの時はすごく...複雑な気分で...
31 |
32 | ending
33 | 他には何も思い出せない。
34 | うまく言い表せない。
35 | あれは何だったんだろう?
36 | これってすごく...興味深いわ!
37 | 不思議なものね。
38 | あれって夢だったのかな?
39 | 不思議だけど...こういうことってあるのね。
40 | だめ...うまく思い出せないわ。
41 | あの感覚は...言葉にできない。
42 | 夢の中にいるみたいだった。
43 | すべてが漠然としていたの...
44 | 妙ね...まるで自分の記憶じゃないみたい。
45 |
46 | noun
47 | クールフロッグ
48 | シャラ
49 | キンピカエル
50 | 見知らぬ人
51 | 大きな影
52 | しゃべる鳥
53 | ダートビーク
54 | ケイティ
55 | 汚れたロボット
56 | 品のある老人
57 | 歩くカカシ
58 | 通りすがりの人
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC2/NPCs/XML/exp2_npcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | exp_mon_frogdragon_name
5 | npc_babyfrogking
6 | BabyFrogDragon
7 | exp_dialog_frogking_town
8 | 1
9 | 1
10 |
11 |
12 |
13 | npc_npc_pinkslimepet_name
14 | npc_jellyboo_introdragon
15 | PinkSlime
16 | 1
17 |
18 |
19 |
20 | exp_npc_realjellydragon_name
21 | npc_jellyboo_beatdragon
22 | PinkSlime
23 | slimedragon_postvictory
24 | 1
25 | 1
26 |
27 |
28 |
29 | ????
30 | npc_hologram
31 | MiraiHologram
32 | 1
33 |
34 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Steffen Itterheim
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Assets/SpriteChildVisibility.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class SpriteChildVisibility : MonoBehaviour {
6 |
7 | SpriteRenderer mySR;
8 | bool mySRFound;
9 | SpriteRenderer myParentSR;
10 | bool parentSRFound;
11 |
12 | // Update is called once per frame
13 | void Update ()
14 | {
15 | if (!mySRFound)
16 | {
17 | mySR = GetComponent();
18 | if (mySR != null)
19 | {
20 | mySRFound = true;
21 | }
22 | }
23 | if (!mySRFound) return;
24 | if (transform.parent == null) return;
25 | if (!parentSRFound)
26 | {
27 | myParentSR = transform.parent.GetComponent();
28 | if (myParentSR != null)
29 | {
30 | parentSRFound = true;
31 | }
32 | }
33 | if (!parentSRFound)
34 | {
35 | return;
36 | }
37 |
38 | // Just have our renderer track our parent's renderer. Simple!
39 | mySR.enabled = myParentSR.enabled;
40 |
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Assets/SwitchInputFieldCommunicator.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | #if UNITY_SWITCH
6 | using nn.hid;
7 | #endif
8 |
9 | public class SwitchInputFieldCommunicator : MonoBehaviour
10 | {
11 | #if UNITY_SWITCH
12 | private NpadId npadId = NpadId.Invalid;
13 | private NpadState npadState = new NpadState();
14 | private nn.swkbd.ShowKeyboardArg showKeyboardArg;
15 | #endif
16 |
17 | private void Start()
18 | {
19 | #if UNITY_SWITCH
20 | Npad.Initialize();
21 | Npad.SetSupportedStyleSet(NpadStyle.Handheld | NpadStyle.JoyDual | NpadStyle.FullKey);
22 | NpadId[] npadIds = { NpadId.Handheld, NpadId.No1 };
23 | Npad.SetSupportedIdType(npadIds);
24 |
25 | nn.swkbd.Swkbd.Initialize(ref showKeyboardArg, false, true);
26 | #endif
27 | }
28 |
29 | public void OnContentsChanged()
30 | {
31 | return;
32 | #if !UNITY_SWITCH
33 | return;
34 | #else
35 | if (UIManagerScript.textInputFieldIsActivated)
36 | {
37 | UIManagerScript.DeactivateTextInputField();
38 | }
39 | #endif
40 |
41 |
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/Assets/WrathBarScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class WrathBarScript : MonoBehaviour {
7 |
8 | public SpriteRenderer[] wrathCounters;
9 |
10 |
11 | public void SetWrathCharges(int num)
12 | {
13 | if (num < 0) num = 0;
14 | if (num > 5) num = 5;
15 |
16 | for (int i = 0; i < 5; i++)
17 | {
18 | wrathCounters[i].color = UIManagerScript.transparentColor;
19 | }
20 |
21 | for (int i = 0; i < 5; i++)
22 | {
23 | if (i < num)
24 | {
25 | wrathCounters[i].color = Color.white;
26 | }
27 | }
28 | }
29 |
30 | public void UpdateWrathCount(int amount)
31 | {
32 | if (!GameMasterScript.gameLoadSequenceCompleted) return;
33 | SetWrathCharges(amount);
34 | }
35 |
36 | public void ToggleWrathBar(bool state)
37 | {
38 | gameObject.SetActive(state);
39 | if (state && wrathCounters[0] == null)
40 | {
41 | Debug.Log("Wrath counter 1 is null");
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/Assets/ConditionalLocalizeToChineseFont.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | public class ConditionalLocalizeToChineseFont : MonoBehaviour
7 | {
8 |
9 | bool checkedForChina;
10 |
11 | private void OnEnable()
12 | {
13 | TryLocalize();
14 | }
15 |
16 | private void Start()
17 | {
18 | TryLocalize();
19 | }
20 |
21 | void TryLocalize()
22 | {
23 | if (checkedForChina) return;
24 |
25 | if (StringManager.gameLanguage != EGameLanguage.zh_cn)
26 | {
27 | return;
28 | }
29 |
30 | TextMeshProUGUI localTMPro = GetComponent();
31 |
32 | if (localTMPro == null)
33 | {
34 | return;
35 | }
36 |
37 | FontManager.LocalizeMe(localTMPro, TDFonts.WHITE);
38 |
39 | float sizeMax = localTMPro.fontSizeMax;
40 | sizeMax += 2f;
41 | localTMPro.fontSizeMax = sizeMax;
42 |
43 | float size = localTMPro.fontSize;
44 | size += 2f;
45 | localTMPro.fontSize = size;
46 |
47 | localTMPro.fontStyle = FontStyles.Normal;
48 |
49 | //checkedForChina = true;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Assets/MusicTrackData.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class MusicTrackData
6 | {
7 | public AudioClip clip;
8 | public string trackFileName;
9 | public string refName;
10 | public int loopPoint;
11 | public bool looping;
12 | public int index;
13 | public string bundleName;
14 |
15 | //data to help select tracks when exploring areas that don't have
16 | //predefined tracks
17 | public bool isDungeonTrack;
18 | public bool isItemDreamTrack;
19 | public int iMinimumFloor;
20 |
21 | private static int iNextIndex = 0;
22 | public MusicTrackData(string filename, string reference, int loop, string bun = "audio")
23 | {
24 | trackFileName = filename;
25 | refName = reference;
26 | loopPoint = loop;
27 | looping = true;
28 | bundleName = bun;
29 | }
30 |
31 | public MusicTrackData(ScriptableObject_MusicData scmd)
32 | {
33 | clip = scmd.clip;
34 | trackFileName = scmd.strFileName;
35 | refName = scmd.strReference;
36 | isDungeonTrack = scmd.isDungeonTrack;
37 | isItemDreamTrack = scmd.isItemDream;
38 | iMinimumFloor = scmd.iMinimumFloor;
39 |
40 | bundleName = "music_" + refName.ToLower();
41 | }
42 | }
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Scripts/Controller/ButtonHandler.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.SceneManagement;
3 | using UnityEngine.UI;
4 |
5 | #pragma warning disable 0649
6 |
7 | namespace NewResolutionDialog.Scripts.Controller
8 | {
9 | public class ButtonHandler : MonoBehaviour
10 | {
11 | [SerializeField] Settings settings;
12 | [SerializeField] Button playButton;
13 | [SerializeField] Button quitButton;
14 | [SerializeField] Button closeButton;
15 |
16 | private void OnEnable()
17 | {
18 | var isLaunchScene = settings.dialogStyle == ResolutionDialogStyle.LaunchDialog;
19 | playButton.gameObject.SetActive(isLaunchScene);
20 | //quitButton.gameObject.SetActive(isLaunchScene);
21 | //closeButton.gameObject.SetActive(!isLaunchScene);
22 | }
23 |
24 | public void OnPlay()
25 | {
26 | // just load the next scene in the "included in build" scenes list
27 | SceneManager.LoadScene("Logos");
28 | }
29 |
30 | public void OnQuit()
31 | {
32 | // either quit or leave pl ay mode
33 | #if UNITY_EDITOR
34 | UnityEditor.EditorApplication.isPlaying = false;
35 | #else
36 | Application.Quit();
37 | #endif
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/exp_abilities_monster.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | skill_expmon_healingwave_name
5 | skill_expmon_healingwave
6 | 4
7 | RECT
8 | 2
9 | 12
10 | INSTANT,TARGETED,TVISIBLEONLY,PERTARGETANIM,MONSTERAFFECTED,CENTERED,CURSORTARGET,SIMULTANEOUSANIM,LINEOFSIGHTREQ
11 | ALLY
12 | HEALHP
13 |
14 | CHANGESTAT
15 | chemistheal2
16 | ALL
17 | MYFACTION
18 | FervirRecovery,0.4
19 | 0.25
20 | 3|6
21 | HEALTH
22 | CUR
23 |
24 |
25 |
26 |
27 |
28 | abil_skill_fireburst_name
29 | skill_expmon_fireburstweaker
30 | 2
31 | 7
32 | INSTANT,TARGETED,TVISIBLEONLY,PERTARGETANIM,HEROAFFECTED,CENTERED,LINEOFSIGHTREQ,PLAYANIMONEMPTY,OVERRIDECHILDSFX,MONSTERFIXEDPOS
33 | 1
34 | BURST
35 | ENEMY
36 | ArtillerySFX
37 | fireburstclose
38 |
39 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Scripts/Controller/PopupHandler.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.SceneManagement;
3 | using UnityEngine.UI;
4 |
5 | #pragma warning disable 0649
6 |
7 | namespace NewResolutionDialog.Scripts.Controller
8 | {
9 | ///
10 | /// Shows the popup at Start if the is set to
11 | ///
12 | ///
13 | ///
14 | ///
15 | public class PopupHandler : MonoBehaviour
16 | {
17 | [SerializeField]
18 | private Settings settings;
19 |
20 | [SerializeField]
21 | private Canvas dialogCanvas;
22 |
23 | public Toggle showAtNextLaunchToggle;
24 |
25 | private void Start()
26 | {
27 | dialogCanvas.enabled = settings.dialogStyle == ResolutionDialogStyle.LaunchDialog;
28 | }
29 |
30 | private void Awake()
31 | {
32 | if (PlayerPrefs.GetInt("skip_checkbox") == 1)
33 | {
34 | SceneManager.LoadScene("Logos");
35 | }
36 | }
37 |
38 | public void OnToggleChanged()
39 | {
40 | PlayerPrefs.SetInt("skip_checkbox", showAtNextLaunchToggle.isOn ? 0 : 1);
41 | }
42 | }
43 | }
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/StatusEffects/BakedStatusEffectDefinitions_DLC1.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class BakedStatusEffectDefinitions
6 | {
7 | // These status definitions are very simple and we don't need to take up XML space with them.
8 | // This function runs after the main LoadAllStatuses call runs.
9 |
10 | static readonly string[] permaBuffNoRunStatusesDLC1 = new string[]
11 | {
12 | "exp_status_improveddominate",
13 | "exp_status_necessarysacrifice",
14 | "dualwielderbonus2",
15 | "dualwielderbonus3",
16 | "emblem_dualwielderemblem_tier0_biography",
17 | "emblem_dualwielderemblem_tier1_glide",
18 | "relichunter",
19 | "menagerie",
20 | "treasuretracker",
21 | "scholar"
22 | };
23 |
24 | static readonly string[] permaBuffNoRunStatusMultiDLC = new string[]
25 | {
26 | "dualwielderbonus1"
27 | };
28 |
29 | public static void AddAllBakedStatusDefinitions_DLC1()
30 | {
31 | //if (DLCManager.CheckDLCInstalled(EDLCPackages.EXPANSION1))
32 | {
33 | foreach (string abilRef in permaBuffNoRunStatusesDLC1)
34 | {
35 | SetupPermaBuffNoRunStatus(abilRef);
36 | }
37 | }
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/UIManagerScript_PrettyLoading.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class UIManagerScript
6 | {
7 | static void DoLoadPrettyLoadingScreen()
8 | {
9 | //:(
10 | if (GameMasterScript.gmsSingleton == null ||
11 | GameMasterScript.gmsSingleton.titleScreenGMS)
12 | {
13 | return;
14 | }
15 |
16 | if (PlatformVariables.LOAD_EVERYTHING_FROM_ASSET_BUNDLES)
17 | {
18 | var AB = TDAssetBundleLoader.GetBundleIfExists("nowloading_object");
19 | var go = AB.LoadAsset("prefab_loadinglogo");
20 | if (UIManagerScript.prettyLoadingArtComponent == null)
21 | {
22 | UIManagerScript.prettyLoadingArtComponent = Instantiate(go).GetComponent();
23 | }
24 | }
25 |
26 | TurnOnPrettyLoading();
27 | }
28 |
29 | public static void TurnOnPrettyLoading(float fFadeTime = 0f, float fillPerSecondTime = 0.2f)
30 | {
31 | prettyLoadingArtComponent.TurnOn(fFadeTime, fillPerSecondTime);
32 | }
33 |
34 | public static void TurnOffPrettyLoading(float fFadeTime = 0f, float fDelayBeforeFade = 0f)
35 | {
36 | prettyLoadingArtComponent.TurnOff(fFadeTime, fDelayBeforeFade);
37 | }
38 | }
--------------------------------------------------------------------------------
/Assets/UIManagerScript_LoadingBar.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class UIManagerScript
6 | {
7 | public static void ToggleLoadingBar()
8 | {
9 | loadingGroup.GetComponent().alpha = Mathf.Abs(1.0f - loadingGroup.GetComponent().alpha);
10 | if (loadingGroup.GetComponent().alpha == 0f)
11 | {
12 | loadingGroup.SetActive(false);
13 | }
14 | else
15 | {
16 | loadingGroup.SetActive(true);
17 | }
18 | }
19 |
20 | public static void DisableLoadingBar()
21 | {
22 | //loadingGroup.SetActive(false);
23 | }
24 |
25 | public static void WriteLoadingText(string text)
26 | {
27 | prettyLoadingArtComponent.SetTextString(text, true);
28 | //loadingBarText.text = text;
29 | }
30 |
31 | public static void FillLoadingBar(float percent)
32 | {
33 | prettyLoadingArtComponent.SetFillRatio(percent);
34 | //loadingBar.fillAmount = percent;
35 | }
36 |
37 | public static void MoveLoadingBar(float percent)
38 | {
39 | prettyLoadingArtComponent.AdjustFillRatio(percent);
40 | }
41 |
42 | public static float GetLoadingBarFillValue()
43 | {
44 | return prettyLoadingArtComponent.GetFillRatio();
45 | }
46 | }
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC2/StatusEffects/BakedStatusEffectDefinitions_DLC2.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class BakedStatusEffectDefinitions
6 | {
7 | static readonly string[] permaBuffNoRunStatusesDLC2 = new string[]
8 | {
9 | "whipmastery3",
10 | "xp2_echoingattack",
11 | "xp2_absorbingshield",
12 | //"xp2_zookeeper",
13 | "xp2_ricochet",
14 | "xp2_legends",
15 | "xp2_grandmaster",
16 | "xp2_dragons",
17 | "xp2_hydrating",
18 | "xp2_battlemage"
19 | };
20 |
21 | static readonly HashSet dlc2statusesThatShouldStack = new HashSet
22 | {
23 | "xp2_dragons",
24 | "xp2_hydrating"
25 | };
26 |
27 | public static void AddAllBakedStatusDefinitions_DLC2()
28 | {
29 | if (DLCManager.CheckDLCInstalled(EDLCPackages.EXPANSION2))
30 | {
31 | foreach (string abilRef in permaBuffNoRunStatusesDLC2)
32 | {
33 | StatusEffect se = SetupPermaBuffNoRunStatus(abilRef);
34 | if (dlc2statusesThatShouldStack.Contains(abilRef))
35 | {
36 | se.stackMultipleEffects = true;
37 | se.stackMultipleDurations = false;
38 | }
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Assets/Pathfinding.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using UnityEngine;
6 |
7 |
8 | public class Pathfinding
9 | {
10 | public static PFNode TileToNode(MapTileData mtd, Actor act)
11 | {
12 | PFNode pf = new PFNode();
13 | pf.x = (int)mtd.pos.x;
14 | pf.y = (int)mtd.pos.y;
15 | if (mtd.tileType == TileTypes.WALL) pf.wall = true;
16 | else if (mtd.IsUnbreakableCollidable(act))
17 | {
18 | pf.wall = true;
19 | }
20 | pf.lava = mtd.CheckTag(LocationTags.LAVA);
21 | pf.water = mtd.CheckTag(LocationTags.WATER);
22 | pf.mud = mtd.CheckTag(LocationTags.MUD);
23 | pf.elec = mtd.CheckTag(LocationTags.ELECTRIC);
24 |
25 | return pf;
26 | }
27 |
28 | public static PFNode GetNeighbor(Directions dir)
29 | {
30 | switch(dir)
31 | {
32 | case Directions.NORTH:
33 |
34 | break;
35 | }
36 | return null;
37 | }
38 | }
39 |
40 | public class PFNode
41 | {
42 | public int x;
43 | public int y;
44 | public int g;
45 | public int f;
46 | public int h;
47 | public bool wall;
48 | public bool open;
49 | public bool closed;
50 | public bool lava;
51 | public bool mud;
52 | public bool elec;
53 | public bool water;
54 | public PFNode parent;
55 | public PFNode child;
56 | }
57 |
58 |
--------------------------------------------------------------------------------
/Assets/TDExpansion.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class TDExpansion : MonoBehaviour {
6 |
7 | public static bool IsExpansionActive(int expNumber)
8 | {
9 | return false;
10 | }
11 |
12 | public static void VerifyExpansionStuffOnLoad()
13 | {
14 | if (!IsExpansionActive(0)) return;
15 | /* if (GameMasterScript.heroPCActor.ReadActorData("boss4fight_phase2") >= 2 || // Beat final boss on this character.
16 | GameMasterScript.gmsSingleton.statsAndAchievements.stat_boss4defeated >= 1 || // Have the achievement
17 | MetaProgressScript.ReadMetaProgress("boss4fight_phase2") >= 2)
18 | {
19 | if (!GameMasterScript.heroPCActor.myInventory.HasItemByRef("item_sharaorb"))
20 | {
21 | Item orb = LootGeneratorScript.CreateItemFromTemplateRef("item_sharaorb", 1.0f, 0f, false);
22 | GameMasterScript.heroPCActor.myInventory.AddItemRemoveFromPrevCollection(orb, false);
23 | StringManager.SetTag(0, orb.displayName);
24 | StringManager.SetTag(1, orb.displayName);
25 | GameLogScript.LogWriteStringRef("log_corral_pickup");
26 | }
27 | } */
28 | }
29 |
30 | // Use this for initialization
31 | void Start () {
32 |
33 | }
34 |
35 | // Update is called once per frame
36 | void Update () {
37 |
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/Assets/Resources/ShepPrefabs/CSCBlockHolder.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1612204098233052}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1612204098233052
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 224336489030337158}
22 | m_Layer: 5
23 | m_Name: CSCBlockHolder
24 | m_TagString: Untagged
25 | m_Icon: {fileID: 0}
26 | m_NavMeshLayer: 0
27 | m_StaticEditorFlags: 0
28 | m_IsActive: 1
29 | --- !u!224 &224336489030337158
30 | RectTransform:
31 | m_ObjectHideFlags: 1
32 | m_PrefabParentObject: {fileID: 0}
33 | m_PrefabInternal: {fileID: 100100000}
34 | m_GameObject: {fileID: 1612204098233052}
35 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
36 | m_LocalPosition: {x: 0, y: 0, z: 0}
37 | m_LocalScale: {x: 1, y: 1, z: 1}
38 | m_Children: []
39 | m_Father: {fileID: 0}
40 | m_RootOrder: 0
41 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
42 | m_AnchorMin: {x: 0, y: 1}
43 | m_AnchorMax: {x: 0, y: 1}
44 | m_AnchoredPosition: {x: 72, y: -72}
45 | m_SizeDelta: {x: 100, y: 100}
46 | m_Pivot: {x: 0.5, y: 0.5}
47 |
--------------------------------------------------------------------------------
/Assets/Resources/ShepPrefabs/SubmenuAnchorObject.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1679549399642864}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1679549399642864
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 224639704920211248}
22 | m_Layer: 5
23 | m_Name: SubmenuAnchorObject
24 | m_TagString: Untagged
25 | m_Icon: {fileID: 0}
26 | m_NavMeshLayer: 0
27 | m_StaticEditorFlags: 0
28 | m_IsActive: 1
29 | --- !u!224 &224639704920211248
30 | RectTransform:
31 | m_ObjectHideFlags: 1
32 | m_PrefabParentObject: {fileID: 0}
33 | m_PrefabInternal: {fileID: 100100000}
34 | m_GameObject: {fileID: 1679549399642864}
35 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
36 | m_LocalPosition: {x: 0, y: 0, z: 0}
37 | m_LocalScale: {x: 1.000005, y: 1.000005, z: 1.000005}
38 | m_Children: []
39 | m_Father: {fileID: 0}
40 | m_RootOrder: 0
41 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
42 | m_AnchorMin: {x: 0, y: 0}
43 | m_AnchorMax: {x: 0, y: 0}
44 | m_AnchoredPosition: {x: 1092.7, y: 654}
45 | m_SizeDelta: {x: 100, y: 100}
46 | m_Pivot: {x: 0.5, y: 0.5}
47 |
--------------------------------------------------------------------------------
/Assets/Resources/ShepPrefabs/TooltipAnchorRight.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1954832697025440}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1954832697025440
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 224267882638385376}
22 | m_Layer: 5
23 | m_Name: TooltipAnchorRight
24 | m_TagString: Untagged
25 | m_Icon: {fileID: 0}
26 | m_NavMeshLayer: 0
27 | m_StaticEditorFlags: 0
28 | m_IsActive: 1
29 | --- !u!224 &224267882638385376
30 | RectTransform:
31 | m_ObjectHideFlags: 1
32 | m_PrefabParentObject: {fileID: 0}
33 | m_PrefabInternal: {fileID: 100100000}
34 | m_GameObject: {fileID: 1954832697025440}
35 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
36 | m_LocalPosition: {x: 0, y: 0, z: 0}
37 | m_LocalScale: {x: 1.000005, y: 1.000005, z: 1.000005}
38 | m_Children: []
39 | m_Father: {fileID: 0}
40 | m_RootOrder: 0
41 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
42 | m_AnchorMin: {x: 0, y: 0}
43 | m_AnchorMax: {x: 0, y: 0}
44 | m_AnchoredPosition: {x: 1650, y: 812}
45 | m_SizeDelta: {x: 100, y: 100}
46 | m_Pivot: {x: 0.5, y: 0.5}
47 |
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/DungeonRooms/XML/exp_specialrooms.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | shara_campfire
7 | 9
8 | 9
9 | ..X.d.X..
10 | ....A....
11 | .X.....X.
12 | ....p....
13 | ..T5.....
14 | .......w.
15 | XXX.X..w.
16 | BB..X.ww.
17 | ....X.ww.
18 |
19 | d
20 | STAIRS
21 | FORWARDS
22 |
23 |
24 | p
25 | PLAYERSTART
26 |
27 |
28 | w
29 | TERRAIN
30 | WATER
31 | GROUND
32 |
33 |
34 | B
35 | DESTRUCTIBLE
36 | exp1_decorative_bookshelf
37 |
38 |
39 | T
40 | MONSTER
41 | mon_targetdummy
42 |
43 |
44 | A
45 | DESTRUCTIBLE
46 | obj_regenfountain
47 |
48 |
49 | 5
50 | ITEM
51 | weapon_shortsword
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_StringInitialization.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class GameMasterScript
6 | {
7 | static void AssignAttributeAndElementStrings()
8 | {
9 | monsterAttributeNames = new string[(int)MonsterAttributes.COUNT];
10 | monsterAttributeNames[0] = "GREEDY";
11 | monsterAttributeNames[1] = "TIMID";
12 | monsterAttributeNames[2] = "BERSERKER";
13 | monsterAttributeNames[3] = "SNIPER";
14 | monsterAttributeNames[4] = "LOVESBATTLES";
15 | monsterAttributeNames[5] = "STALKER";
16 | monsterAttributeNames[6] = "GANGSUP";
17 | monsterAttributeNames[7] = "PREDATOR";
18 | monsterAttributeNames[8] = "HEALER";
19 | monsterAttributeNames[9] = "COMBINABLE";
20 | monsterAttributeNames[10] = "RONIN";
21 |
22 | elementNames = new string[(int)DamageTypes.COUNT];
23 | elementNames[(int)DamageTypes.POISON] = StringManager.GetString("misc_dmg_poison");
24 | elementNames[(int)DamageTypes.PHYSICAL] = StringManager.GetString("misc_dmg_physical");
25 | elementNames[(int)DamageTypes.LIGHTNING] = StringManager.GetString("misc_dmg_lightning");
26 | elementNames[(int)DamageTypes.FIRE] = StringManager.GetString("misc_dmg_fire");
27 | elementNames[(int)DamageTypes.WATER] = StringManager.GetString("misc_dmg_water");
28 | elementNames[(int)DamageTypes.SHADOW] = StringManager.GetString("misc_dmg_shadow");
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/Assets/AfterImageEffectScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class AfterImageEffectScript : MonoBehaviour {
6 |
7 |
8 | float timeAtCreation;
9 | float animTime;
10 | bool initialized;
11 | bool finished;
12 | SpriteRenderer sr;
13 |
14 | // Use this for initialization
15 | public void Initialize(float aTime, SpriteRenderer sourceSR)
16 | {
17 | animTime = aTime;
18 | timeAtCreation = Time.time;
19 | initialized = true;
20 | finished = false;
21 | if (sr == null)
22 | {
23 | sr = GetComponent();
24 | }
25 | sr.sprite = sourceSR.sprite;
26 | sr.flipX = sourceSR.flipX;
27 | sr.flipY = sourceSR.flipY;
28 | }
29 |
30 | void Start()
31 | {
32 | sr = GetComponent();
33 | }
34 |
35 | // Update is called once per frame
36 | void Update () {
37 |
38 | if (!initialized) return;
39 |
40 | float pComplete = (Time.time - timeAtCreation) / animTime;
41 | if (pComplete > 1.0f)
42 | {
43 | pComplete = 1.0f;
44 | finished = true;
45 | }
46 |
47 | float srValue = 1f - pComplete - 0.15f;
48 | if (srValue < 0f) srValue = 0f;
49 |
50 | sr.color = new Color(1f, 1f, 1f, srValue);
51 |
52 |
53 | if (finished)
54 | {
55 | GameMasterScript.ReturnToStack(gameObject, "SingleAfterImagePrefab");
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/Assets/StringManager_TagManagement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System.Xml;
5 | using UnityEngine.Serialization;
6 | using System.IO;
7 | using System;
8 | using System.Diagnostics;
9 | using System.Linq;
10 | using System.Reflection;
11 | using System.Text.RegularExpressions;
12 | using System.Xml.Serialization;
13 | using System.Globalization;
14 | using Debug = UnityEngine.Debug;
15 |
16 | public partial class StringManager
17 | {
18 | public static void ClearTags()
19 | {
20 | for (int i = 0; i < mergeTags.Length; i++)
21 | {
22 | mergeTags[i] = String.Empty;
23 | }
24 | }
25 |
26 | public static string GetTag(int index)
27 | {
28 | if (index >= mergeTags.Length) return String.Empty;
29 | return mergeTags[index];
30 | }
31 |
32 | public static void SetTag(int index, string content)
33 | {
34 | if (index >= mergeTags.Length) return;
35 | mergeTags[index] = content;
36 | }
37 |
38 | public static void ClearAndSetTag(int index, string content)
39 | {
40 | if (index >= mergeTags.Length) return;
41 | ClearTags();
42 | mergeTags[index] = content;
43 | }
44 |
45 | public static string[] GetCopyOfCurrentMergeTags()
46 | {
47 | string[] copyOfTags = new string[mergeTags.Length];
48 | for (int i = 0; i < copyOfTags.Length; i++)
49 | {
50 | copyOfTags[i] = mergeTags[i];
51 | }
52 | return copyOfTags;
53 | }
54 | }
--------------------------------------------------------------------------------
/Assets/SimpleLightCycle.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class SimpleLightCycle : MonoBehaviour {
8 |
9 | Image myImage;
10 | public float cycleTime;
11 | public float transOffset;
12 | bool fadeOut = true;
13 | float startCycleTime = 0f;
14 |
15 | // Use this for initialization
16 |
17 | void Start () {
18 | myImage = GetComponent();
19 | startCycleTime = Time.time;
20 | }
21 |
22 | // Update is called once per frame
23 | void Update () {
24 | if (myImage != null)
25 | {
26 | float pcomplete = (Time.time - startCycleTime) / cycleTime;
27 |
28 |
29 |
30 | if (fadeOut)
31 | {
32 | float cSlerp = Mathfx.Sinerp(1f, 0.5f, pcomplete);
33 | //myImage.color = new Color(1f, 1f, 1f, 1f - (pcomplete / 2f));
34 | myImage.color = new Color(1f, 1f, 1f, cSlerp + transOffset);
35 | }
36 | else
37 | {
38 | float cSlerp = Mathfx.Sinerp(0.5f, 1.0f, pcomplete);
39 | //myImage.color = new Color(1f, 1f, 1f, 0.5f + (pcomplete / 2f));
40 | myImage.color = new Color(1f, 1f, 1f, cSlerp + transOffset);
41 | }
42 |
43 | if (pcomplete >= 1.0f)
44 | {
45 | startCycleTime = Time.time;
46 | fadeOut = !fadeOut;
47 | }
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # This .gitignore file should be placed at the root of your Unity project directory
2 | #
3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
4 | #
5 | /[Ll]ibrary/
6 | /[Tt]emp/
7 | /[Oo]bj/
8 | /[Bb]uild/
9 | /[Bb]uilds/
10 | /[Ll]ogs/
11 | /[Uu]ser[Ss]ettings/
12 |
13 | # MemoryCaptures can get excessive in size.
14 | # They also could contain extremely sensitive data
15 | /[Mm]emoryCaptures/
16 |
17 | # Recordings can get excessive in size
18 | /[Rr]ecordings/
19 |
20 | # Uncomment this line if you wish to ignore the asset store tools plugin
21 | # /[Aa]ssets/AssetStoreTools*
22 |
23 | # Autogenerated Jetbrains Rider plugin
24 | /[Aa]ssets/Plugins/Editor/JetBrains*
25 |
26 | # Visual Studio cache directory
27 | .vs/
28 |
29 | # Gradle cache directory
30 | .gradle/
31 |
32 | # Autogenerated VS/MD/Consulo solution and project files
33 | ExportedObj/
34 | .consulo/
35 | *.csproj
36 | *.unityproj
37 | *.sln
38 | *.suo
39 | *.tmp
40 | *.user
41 | *.userprefs
42 | *.pidb
43 | *.booproj
44 | *.svd
45 | *.pdb
46 | *.mdb
47 | *.opendb
48 | *.VC.db
49 |
50 | # Unity3D generated meta files
51 | *.pidb.meta
52 | *.pdb.meta
53 | *.mdb.meta
54 |
55 | # Unity3D generated file on crash reports
56 | sysinfo.txt
57 |
58 | # Builds
59 | *.apk
60 | *.aab
61 | *.unitypackage
62 | *.app
63 |
64 | # Crashlytics generated file
65 | crashlytics-build.properties
66 |
67 | # Packed Addressables
68 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
69 |
70 | # Temporary auto-generated Android Assets
71 | /[Aa]ssets/[Ss]treamingAssets/aa.meta
72 | /[Aa]ssets/[Ss]treamingAssets/aa/*
73 |
--------------------------------------------------------------------------------
/Assets/ResolutionDialog/Todos.md:
--------------------------------------------------------------------------------
1 | Flow:
2 |
3 | - Populate dropdown lists
4 | do not make any changes yet!
5 | - Select current item
6 | happens initially
7 | happens after a change was made at the end of a "waitforendofframe" coroutine - for changes that take effect at the end of a frame (ie resolution)
8 | base this on current settings (ie sometimes a settings gets modified from the desired setting)
9 | apply changes without raising the OnValueChanges event
10 | - Update disabled status of controls
11 | - OnValueChanged
12 | apply value
13 | reset vsync state when quality level changes (override quality level's vsync)
14 | select current item (possibly next frame)
15 | update disabled status
16 | update Hz dropdown (when one of the following changed: resolution, vsync, fullscreen mode)
17 |
18 | Side-effects:
19 |
20 | Changes to the following items may cause other items to change or become irrelevant.
21 |
22 | - Resolution affects:
23 | Refresh rate
24 | - Refresh rate affects:
25 | calculated max fps (vsync count)
26 | - Fullscreenmode affects:
27 | resolution
28 | refresh rate (disable)
29 | vsync count (disable)
30 | - Vsync count affects:
31 | refresh rate (disable)
32 | calculated max fps (vsync count)
33 | - quality affects:
34 | reset vsync count to dialog's value as it may be changed by quality level
35 | - display affects:
36 | resolution
37 | refresh rate
38 | fullscreen mode (?)
39 |
40 | TODO
41 |
42 | Tasks:
43 | - popup funktion (play = ok)
44 | - popup key einstellbar
45 |
46 | Bugs:
47 |
48 | Idee:
49 | - Tool, das ausgibt welche Resolution was ist (Display, Screen, Window, Desktop, usw.)
50 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_OrbAndJobScrollToSkillOrb.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_OrbAndJobScrollToSkillOrb : CraftingRecipe {
6 |
7 | public Item jobScroll;
8 | public Item orbToUse;
9 |
10 | public override bool IsRecipePossible(List- inputItems)
11 | {
12 | dictCachedItemsToUse.Clear();
13 | bool hasScroll = false;
14 | bool hasOrb = false;
15 |
16 | foreach (Item itm in inputItems)
17 | {
18 | if (!hasOrb && !itm.IsLucidOrb() && !itm.IsJobSkillOrb() && itm.actorRefName == "orb_itemworld")
19 | {
20 | orbToUse = itm;
21 | hasOrb = true;
22 | }
23 |
24 | if (itm.actorRefName == "scroll_jobchange")
25 | {
26 | jobScroll = itm;
27 | hasScroll = true;
28 | }
29 |
30 | if (hasOrb && hasScroll)
31 | {
32 | dictCachedItemsToUse.Add(jobScroll, 1);
33 | dictCachedItemsToUse.Add(orbToUse, 1);
34 | return true;
35 | }
36 | }
37 | return false;
38 | }
39 |
40 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
41 | {
42 | Item newOrb = ItemWorldUIScript.CreateItemWorldOrb(1.6f, false, true);
43 | List
- returnItems = new List
- () { newOrb };
44 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
45 | return returnItems;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Assets/Resources/SpriteEffects/PivotHolder.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &192908
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_PrefabParentObject: {fileID: 0}
7 | m_PrefabInternal: {fileID: 100100000}
8 | serializedVersion: 5
9 | m_Component:
10 | - component: {fileID: 22495318}
11 | - component: {fileID: 22278754}
12 | m_Layer: 0
13 | m_Name: PivotHolder
14 | m_TagString: Untagged
15 | m_Icon: {fileID: 0}
16 | m_NavMeshLayer: 0
17 | m_StaticEditorFlags: 0
18 | m_IsActive: 1
19 | --- !u!222 &22278754
20 | CanvasRenderer:
21 | m_ObjectHideFlags: 1
22 | m_PrefabParentObject: {fileID: 0}
23 | m_PrefabInternal: {fileID: 100100000}
24 | m_GameObject: {fileID: 192908}
25 | --- !u!224 &22495318
26 | RectTransform:
27 | m_ObjectHideFlags: 1
28 | m_PrefabParentObject: {fileID: 0}
29 | m_PrefabInternal: {fileID: 100100000}
30 | m_GameObject: {fileID: 192908}
31 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
32 | m_LocalPosition: {x: 0, y: 0, z: 0}
33 | m_LocalScale: {x: 1, y: 1, z: 1}
34 | m_Children: []
35 | m_Father: {fileID: 0}
36 | m_RootOrder: 0
37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
38 | m_AnchorMin: {x: 0.5, y: 0.5}
39 | m_AnchorMax: {x: 0.5, y: 0.5}
40 | m_AnchoredPosition: {x: 1, y: 1}
41 | m_SizeDelta: {x: 100, y: 100}
42 | m_Pivot: {x: 0.5, y: 0.5}
43 | --- !u!1001 &100100000
44 | Prefab:
45 | m_ObjectHideFlags: 1
46 | serializedVersion: 2
47 | m_Modification:
48 | m_TransformParent: {fileID: 0}
49 | m_Modifications: []
50 | m_RemovedComponents: []
51 | m_ParentPrefab: {fileID: 0}
52 | m_RootGameObject: {fileID: 192908}
53 | m_IsPrefabParent: 1
54 |
--------------------------------------------------------------------------------
/Assets/CanvasParallaxScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class CanvasParallaxScript : MonoBehaviour {
8 |
9 | public Vector3 startPosition;
10 | public float animationTime;
11 |
12 | float timeAtParallaxStart;
13 | bool animComplete;
14 | bool initialized;
15 | Vector3 finishPosition;
16 |
17 | void Start()
18 | {
19 | // Handle this on enable
20 | }
21 |
22 | void OnEnable()
23 | {
24 | }
25 |
26 | public void Initialize()
27 | {
28 | finishPosition = transform.localPosition;
29 | transform.localPosition = startPosition;
30 | timeAtParallaxStart = Time.time;
31 | initialized = true;
32 | animComplete = false;
33 | }
34 |
35 | void Update()
36 | {
37 | if (!initialized) return;
38 | if (!animComplete)
39 | {
40 | float percentComplete = (Time.time - timeAtParallaxStart) / animationTime;
41 | if (percentComplete > 1.0f)
42 | {
43 | percentComplete = 1.0f;
44 | animComplete = true;
45 | }
46 | float xLerp = Mathfx.Sinerp(startPosition.x, finishPosition.x, percentComplete);
47 | float yLerp = Mathfx.Sinerp(startPosition.y, finishPosition.y, percentComplete);
48 | //Vector3 newPos = Vector3.Lerp(startPosition, finishPosition, percentComplete);
49 | Vector3 newPos = new Vector3(xLerp, yLerp, 0f);
50 | transform.localPosition = newPos;
51 | }
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/Assets/FastTravelStuff.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class FastTravelStuff
6 | {
7 |
8 | public static bool initialized;
9 |
10 | static List waypointFloorIDsSorted;
11 |
12 | public static List GetWaypointIDList()
13 | {
14 | if (!initialized)
15 | {
16 | Initialize();
17 | }
18 | return waypointFloorIDsSorted;
19 | }
20 |
21 | static void Initialize()
22 | {
23 | if (initialized) return;
24 |
25 | waypointFloorIDsSorted = new List()
26 | {
27 | 0, // town
28 | MapMasterScript.BRANCH_PASSAGE_POSTBOSS1,
29 | MapMasterScript.BRANCH_PASSAGE_POSTBOSS2,
30 | 101, // Katie area
31 | 104, // storeroom
32 | 102, // frog bog
33 | 105, // off the beaten path
34 | 106, // hilde area
35 | 107, // bottles brews
36 | 110, // casino
37 | 118, // pet shoppe
38 | 131, // magic merchant
39 | 207, // beastlake park
40 | 224, // frozen alcove
41 | 225, // desert area
42 | 16, // stone halls
43 | 212, // final hub
44 | 356, // realm of gods 1
45 | 360, // realm of gods 5
46 | 380, // frog dungeon 1
47 | 375, // bandit dungeon 1
48 | 385, // beast dungeon 1
49 | 390, // spirit dungeon 1
50 | 394, // jelly dungeon 1
51 | 370, // robot dungeon 1
52 |
53 | };
54 |
55 | initialized = true;
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/Assets/GraphicsAndFramerateManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class GraphicsAndFramerateManager
6 | {
7 | static int bufferedVSyncCount = 0;
8 | static int bufferedFrameRate = Application.targetFrameRate;
9 |
10 | const int FIXED_MOBILE_FRAMERATE = 60;
11 |
12 | public static void OnStartLoad()
13 | {
14 | if (PlatformVariables.FIXED_FRAMERATE) return;
15 |
16 | bufferedFrameRate = Application.targetFrameRate;
17 | SetApplicationFPS(-1);
18 | bufferedVSyncCount = QualitySettings.vSyncCount;
19 |
20 | if (!LogoSceneScript.globalIsSolsticeBuild && !LogoSceneScript.globalSolsticeDebug)
21 | {
22 | QualitySettings.vSyncCount = 0;
23 | }
24 | }
25 |
26 | public static void OnEndLoad()
27 | {
28 |
29 | if (PlatformVariables.FIXED_FRAMERATE) return;
30 |
31 |
32 | #if UNITY_ANDROID || UNITY_IPHONE
33 | SetApplicationFPS(FIXED_MOBILE_FRAMERATE);
34 | #else
35 | SetApplicationFPS(bufferedFrameRate);
36 | #endif
37 |
38 | if (!LogoSceneScript.globalIsSolsticeBuild && !LogoSceneScript.globalSolsticeDebug)
39 | {
40 | QualitySettings.vSyncCount = bufferedVSyncCount;
41 | }
42 | }
43 |
44 | public static void SetApplicationFPS(int value)
45 | {
46 | if (PlatformVariables.FIXED_FRAMERATE)
47 | {
48 | Application.targetFrameRate = 60;
49 | return;
50 | }
51 | Application.targetFrameRate = value;
52 |
53 | //if (Debug.isDebugBuild) Debug.Log("SET APPLICATION FPS TO: " + value);
54 |
55 | }
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/Assets/TDScripts/DragonEvents/DragonLimitBreaks.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class DragonLimitBreaks
6 | {
7 | const int FIXED_ABILITY_RANGE = 2;
8 |
9 | ///
10 | /// Adds spaces based on ability into targeting for effect eff
11 | ///
12 | ///
13 | ///
14 | public static void AddTargetsForDragonBreak(AbilityScript triggeringAbility, EffectScript eff, Actor owner)
15 | {
16 | StringManager.SetTag(0, triggeringAbility.abilityName);
17 | GameLogScript.LogWriteStringRef("log_player_dragonbreak");
18 |
19 | List targetSquares = UIManagerScript.singletonUIMS.CreateShapeTileList(triggeringAbility.boundsShape, triggeringAbility, owner.GetPos(), Directions.NORTH, FIXED_ABILITY_RANGE, false);
20 | eff.positions.Clear();
21 | eff.targetActors.Clear();
22 | foreach (Vector2 pos in targetSquares)
23 | {
24 | if (!MapMasterScript.activeMap.InBounds(pos)) continue;
25 | eff.positions.Add(pos);
26 | foreach(Actor act in MapMasterScript.GetTile(pos).GetAllActors())
27 | {
28 | if (eff.targetActors.Contains(act)) continue;
29 | eff.targetActors.Add(act);
30 | }
31 | }
32 |
33 | if (triggeringAbility.CheckAbilityTag(AbilityTags.OVERRIDECHILDSFX))
34 | {
35 | GameObject go = CombatManagerScript.GetEffect(triggeringAbility.sfxOverride);
36 | CombatManagerScript.TryPlayAbilitySFX(go, owner.GetPos(), triggeringAbility);
37 | }
38 | }
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CustomFunctionsFromXML/MoveActorCustomFunctions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class PostMoveActorCustomFunctions
6 | {
7 | public static bool FancyTeleportFX(MoveActorEffect effect, Actor actorToProcess, Vector2 oldPos, Vector2 newPos)
8 | {
9 | if (actorToProcess.GetActorType() == ActorTypes.HERO)
10 | {
11 | actorToProcess.myAnimatable.SetAnim("UseItem");
12 | }
13 |
14 | CombatManagerScript.GenerateSpecificEffectAnimation(oldPos, "TeleportUp", effect, true);
15 | CombatManagerScript.GenerateSpecificEffectAnimation(newPos, "TeleportDown", effect, true);
16 |
17 | return true;
18 | }
19 |
20 | public static bool TryAddBrushstrokeFromGlide(MoveActorEffect effect, Actor actorToProcess, Vector2 oldPos, Vector2 newPos)
21 | {
22 | if (GameMasterScript.heroPCActor.myStats.CheckHasStatusName("emblem_dualwielderemblem_tier1_glide"))
23 | {
24 | GameMasterScript.heroPCActor.myStats.AddStatusByRefAndLog("brushstroke_charge", GameMasterScript.heroPCActor, 99);
25 | }
26 |
27 | return true;
28 | }
29 |
30 | }
31 |
32 | public class MoveActorCustomFunctions {
33 |
34 | public static bool ValkyriePushCheck(MoveActorEffect effect)
35 | {
36 | foreach (Actor act in effect.targetActors)
37 | {
38 | if (MapMasterScript.GetGridDistance(act.GetPos(), effect.originatingActor.GetPos()) > 2)
39 | {
40 | //Debug.Log("Do not push " + act.actorRefName);
41 | effect.skipTargetActors.Add(act);
42 | }
43 | }
44 |
45 | return true;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Assets/AARandomFunctionScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System;
5 | using System.IO;
6 |
7 | public class AARandomFunctionScript : MonoBehaviour
8 | {
9 |
10 | private void Start()
11 | {
12 | Debug.Log("Running.");
13 | }
14 |
15 | // Update is called once per frame
16 | void Update()
17 | {
18 | if (Input.GetKeyDown(KeyCode.KeypadEnter))
19 | {
20 | SpecialFunction(rootPath);
21 | }
22 | }
23 |
24 | static string rootPath = "F:/ISWDEV/TokyoStrings/TokyoScoringStrings/Samples";
25 |
26 | void SpecialFunction(string path)
27 | {
28 |
29 | FileInfo[] files = null;
30 | DirectoryInfo[] subDirs = null;
31 |
32 | DirectoryInfo root = new DirectoryInfo(path);
33 |
34 | // First, process all the files directly under this folder
35 | try
36 | {
37 | files = root.GetFiles("*");
38 | Debug.Log("Done getting files in " + path + ", Count is " + files.Length);
39 | }
40 | // This is thrown if even one of the files requires permissions greater
41 | // than the application provides.
42 | catch (UnauthorizedAccessException e)
43 | {
44 | // This code just writes out the message and continues to recurse.
45 | // You may decide to do something different here. For example, you
46 | // can try to elevate your privileges and access the file again.
47 | Debug.Log(e.Message);
48 | }
49 |
50 | subDirs = root.GetDirectories();
51 |
52 | Debug.Log("Done getting directories in " + path + ", count is " + subDirs.Length);
53 |
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/Assets/LogoSceneFader.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | public class LogoSceneFader : MonoBehaviour
7 | {
8 | public Image myImage;
9 |
10 | EFadeStates fadeState = EFadeStates.COUNT;
11 |
12 | float timeAtFade;
13 |
14 | float currentFadeTime;
15 |
16 | public void FadeOut(float time)
17 | {
18 | fadeState = EFadeStates.FADING_OUT;
19 | timeAtFade = Time.time;
20 | currentFadeTime = time;
21 | }
22 |
23 | public void FadeIn(float time)
24 | {
25 | fadeState = EFadeStates.FADING_IN;
26 | timeAtFade = Time.time;
27 | currentFadeTime = time;
28 | }
29 |
30 | private void Update()
31 | {
32 | if (fadeState != EFadeStates.FADING_IN && fadeState != EFadeStates.FADING_OUT)
33 | {
34 | return;
35 | }
36 |
37 | float pComplete = (Time.time - timeAtFade) / currentFadeTime;
38 |
39 | bool done = false;
40 |
41 | if (pComplete >= 1f)
42 | {
43 | done = true;
44 | pComplete = 1f;
45 | }
46 |
47 | float alphaValue = 0f;
48 |
49 | if (fadeState == EFadeStates.FADING_IN)
50 | {
51 | alphaValue = EasingFunction.Linear(0f, 1f, pComplete);
52 | }
53 | else
54 | {
55 | alphaValue = EasingFunction.Linear(1f, 0f, pComplete);
56 | }
57 |
58 | myImage.color = new Color(0f, 0f, 0f, alphaValue);
59 |
60 | if (done)
61 | {
62 | fadeState = EFadeStates.NOT_FADING;
63 | }
64 | }
65 |
66 | public void SetToBlack()
67 | {
68 | myImage.color = new Color(0f, 0f, 0f, 1f);
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_ThreeOffhandsToOffhand.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_ThreeOffhandsToOffhand : CraftingRecipe {
6 |
7 | public override bool IsRecipePossible(List
- inputItems)
8 | {
9 | dictCachedItemsToUse.Clear();
10 | itemRefsUsed.Clear();
11 | int countOfOffhands = 0;
12 | highestCVOfInputItems = 1.0f;
13 |
14 | foreach (Item itm in inputItems)
15 | {
16 | if (itm.itemType != ItemTypes.OFFHAND) continue;
17 | Offhand oh = itm as Offhand;
18 | if (oh.rarity != Rarity.COMMON) continue;
19 | countOfOffhands++;
20 | dictCachedItemsToUse.Add(itm, 1);
21 | itemRefsUsed.Add(itm.actorRefName);
22 | if (itm.challengeValue > highestCVOfInputItems)
23 | {
24 | highestCVOfInputItems = itm.challengeValue;
25 | }
26 | if (countOfOffhands == numIngredients)
27 | {
28 | return true;
29 | }
30 | }
31 |
32 | return false;
33 | }
34 |
35 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
36 | {
37 | Offhand lookupTemplate = GetPossibleItemRef("offhands", highestCVOfInputItems - 0.2f, highestCVOfInputItems) as Offhand;
38 |
39 | Offhand offhandToMake = new Offhand();
40 | offhandToMake.CopyFromItem(lookupTemplate);
41 | offhandToMake.SetUniqueIDAndAddToDict();
42 | List
- returnItems = new List
- () { offhandToMake };
43 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
44 | return returnItems;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_LucidOrbsToRegular.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | // Takes ANY three Lucid Orbs and spits out a regular Orb of Reverie.
6 |
7 | public class CraftingRecipe_LucidOrbsToRegular : CraftingRecipe
8 | {
9 | public override bool IsRecipePossible(List
- inputItems)
10 | {
11 | dictCachedItemsToUse.Clear();
12 |
13 | int countOfLucidOrbs = 0;
14 | int orbsRemainining = numIngredients;
15 |
16 | // Let's say we input:
17 | // Orb A qty = 2
18 | // Orb B qty = 2
19 | // Orb C qty = 1
20 |
21 | foreach(Item itm in inputItems)
22 | {
23 | if (!itm.IsLucidOrb()) continue;
24 | countOfLucidOrbs += itm.GetQuantity();
25 |
26 | if (itm.GetQuantity() <= orbsRemainining)
27 | {
28 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
29 | }
30 | else
31 | {
32 | dictCachedItemsToUse.Add(itm, orbsRemainining); // Don't ever use more than 3 orbs!
33 | }
34 |
35 | orbsRemainining -= itm.GetQuantity();
36 |
37 | if (countOfLucidOrbs >= numIngredients)
38 | {
39 | return true;
40 | }
41 | }
42 |
43 | return false;
44 | }
45 |
46 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
47 | {
48 | Item newOrb = LootGeneratorScript.CreateItemFromTemplateRef("orb_itemworld", 1.0f, 0f, false);
49 | List
- returnItems = new List
- () { newOrb };
50 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
51 | return returnItems;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Assets/FastRNG.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 | using UnityEngine;
5 |
6 | public class XXHashRNG
7 | {
8 | private int position;
9 | private readonly uint seed;
10 |
11 | public XXHashRNG() : this(Environment.TickCount) { }
12 | public XXHashRNG(int seed) { this.seed = (uint)seed; }
13 |
14 | public bool TestOneIn(int odds) { return Value() * odds <= 1f; }
15 | public int Range(int min, int max) {
16 | if (max - min == 0) return 0;
17 | return min + (int)(GetHash(position++) % (max - min));
18 | }
19 | public float Range(float min, float max) { return min + GetHash(position++) * (max - min) * (1.0f / uint.MaxValue); }
20 |
21 | public int Next(int max)
22 | {
23 | return Range(0, max);
24 | }
25 |
26 | public float Value()
27 | {
28 | return new FloatUnion(0x3F800000U | (GetHash(position++) >> 9)).FloatVal - 1.0f;
29 | }
30 |
31 | const uint PRIME32_2 = 2246822519U;
32 | const uint PRIME32_3 = 3266489917U;
33 | const uint PRIME32_4 = 668265263U;
34 | const uint PRIME32_5 = 374761393U;
35 |
36 | private uint GetHash(int buf)
37 | {
38 | uint h32 = seed + PRIME32_5;
39 | h32 += (uint)buf * PRIME32_3;
40 | h32 = ((h32 << 17) | (h32 >> 15)) * PRIME32_4;
41 | h32 ^= h32 >> 15;
42 | h32 *= PRIME32_2;
43 | h32 ^= h32 >> 13;
44 | h32 *= PRIME32_3;
45 | h32 ^= h32 >> 16;
46 | return h32;
47 | }
48 |
49 | [StructLayout(LayoutKind.Explicit)]
50 | public struct FloatUnion
51 | {
52 | [FieldOffset(0)]
53 | public readonly uint IntVal;
54 | [FieldOffset(0)]
55 | public readonly float FloatVal;
56 |
57 | public FloatUnion(uint intVal)
58 | {
59 | FloatVal = 0;
60 | IntVal = intVal;
61 | }
62 | }
63 | }
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_LucidShardsToLucidOrb.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_LucidShardsToLucidOrb : CraftingRecipe {
6 |
7 | float maxCV = 1.0f;
8 |
9 | public override bool IsRecipePossible(List
- inputItems)
10 | {
11 | dictCachedItemsToUse.Clear();
12 |
13 | int countOfShards = 0;
14 | int shardsRemaining = 6;
15 |
16 | foreach (Item itm in inputItems)
17 | {
18 | if (itm.itemType != ItemTypes.CONSUMABLE) continue;
19 | if (itm.actorRefName != "item_lucidorb_shard") continue;
20 | countOfShards += itm.GetQuantity();
21 |
22 | if (itm.challengeValue > maxCV)
23 | {
24 | maxCV = itm.challengeValue;
25 | }
26 |
27 | if (itm.GetQuantity() <= shardsRemaining)
28 | {
29 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
30 | }
31 | else
32 | {
33 | dictCachedItemsToUse.Add(itm, shardsRemaining); // Don't ever use more than 6 shards!
34 | }
35 |
36 | shardsRemaining -= itm.GetQuantity();
37 |
38 | if (countOfShards >= 6)
39 | {
40 | return true;
41 | }
42 | }
43 |
44 | return false;
45 | }
46 |
47 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
48 | {
49 | Item newOrb = ItemWorldUIScript.CreateItemWorldOrb(maxCV + 0.1f, true, false);
50 | List
- returnItems = new List
- () { newOrb };
51 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
52 | return returnItems;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/Assets/Resources/MyNewGrayscale.shader:
--------------------------------------------------------------------------------
1 | // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
2 |
3 | Shader "Sprites/MyNewGrayscale"
4 | {
5 | Properties
6 | {
7 | [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
8 | _Color("Tint", Color) = (1,1,1,1)
9 | [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
10 | [HideInInspector] _RendererColor("RendererColor", Color) = (1,1,1,1)
11 | [HideInInspector] _Flip("Flip", Vector) = (1,1,1,1)
12 | [PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {}
13 | [PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0
14 | }
15 |
16 | SubShader
17 | {
18 | Tags
19 | {
20 | "Queue" = "Transparent"
21 | "IgnoreProjector" = "True"
22 | "RenderType" = "Transparent"
23 | "PreviewType" = "Plane"
24 | "CanUseSpriteAtlas" = "True"
25 | }
26 |
27 | Cull Off
28 | Lighting Off
29 | ZWrite Off
30 | Blend One OneMinusSrcAlpha
31 |
32 | CGPROGRAM
33 | #pragma surface surf Lambert vertex:vert nofog nolightmap nodynlightmap keepalpha noinstancing
34 | #pragma multi_compile _ PIXELSNAP_ON
35 | #pragma multi_compile _ ETC1_EXTERNAL_ALPHA
36 | #include "UnitySprites.cginc"
37 |
38 | struct Input
39 | {
40 | float2 uv_MainTex;
41 | fixed4 color;
42 | };
43 |
44 | void vert(inout appdata_full v, out Input o)
45 | {
46 | v.vertex.xy *= _Flip.xy;
47 |
48 | #if defined(PIXELSNAP_ON)
49 | v.vertex = UnityPixelSnap(v.vertex);
50 | #endif
51 |
52 | UNITY_INITIALIZE_OUTPUT(Input, o);
53 | o.color = v.color * _Color * _RendererColor;
54 | }
55 |
56 | void surf(Input IN, inout SurfaceOutput o)
57 | {
58 | fixed4 c = SampleSpriteTexture(IN.uv_MainTex) * IN.color;
59 | o.Albedo = c.rgb * c.a;
60 | o.Alpha = c.a;
61 | }
62 | ENDCG
63 | }
64 |
65 | Fallback "Transparent/VertexLit"
66 | }
67 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_ThreeSeedsToRandomSeed.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_ThreeSeedsToRandomSeed : CraftingRecipe {
6 |
7 | public override bool IsRecipePossible(List
- inputItems)
8 | {
9 | dictCachedItemsToUse.Clear();
10 |
11 | int countOfSeeds = 0;
12 | int seedsRemaining = 3;
13 |
14 | foreach (Item itm in inputItems)
15 | {
16 |
17 | if (itm.actorRefName.Contains("seeds_tree"))
18 | {
19 | countOfSeeds += itm.GetQuantity();
20 |
21 | if (itm.GetQuantity() <= seedsRemaining)
22 | {
23 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
24 | }
25 | else
26 | {
27 | dictCachedItemsToUse.Add(itm, seedsRemaining);
28 | }
29 |
30 | seedsRemaining -= itm.GetQuantity();
31 | }
32 |
33 | if (seedsRemaining == 0 || countOfSeeds >= 3)
34 | {
35 | return true;
36 | }
37 | }
38 |
39 | return false;
40 | }
41 |
42 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
43 | {
44 | Consumable seedTemplate = GetPossibleItemRef("seeds", highestCVOfInputItems - 0.3f, highestCVOfInputItems) as Consumable;
45 | Item seed = LootGeneratorScript.CreateItemFromTemplateRef(seedTemplate.actorRefName, highestCVOfInputItems, 0f, true);
46 | LootGeneratorScript.MakeSeedsMagicalIfPossible(seed);
47 | List
- returnItems = new List
- () { seed };
48 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
49 | return returnItems;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Assets/SplashArtComponent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class SplashArtComponent : MonoBehaviour {
8 |
9 | public Image myImage;
10 | public Sprite[] possibleSplashArts;
11 | public Image fillBar;
12 | public Image logoBGForFill;
13 |
14 | public float fillPercent;
15 |
16 | public CanvasGroup parentCG;
17 |
18 | bool fadingOut;
19 | float fadeOutTime;
20 | float timeAtFadeBegin;
21 |
22 | int framesToTurnOff = 3;
23 |
24 | public bool splashArtFadedOut;
25 |
26 | // Use this for initialization
27 | void Start () {
28 | myImage.sprite = possibleSplashArts[UnityEngine.Random.Range(0, possibleSplashArts.Length)];
29 | }
30 |
31 | public void FadeOut(float time)
32 | {
33 | fadeOutTime = time;
34 | fadingOut = true;
35 | timeAtFadeBegin = Time.time;
36 | }
37 |
38 | void Update()
39 | {
40 | if (!fadingOut) return;
41 | float pComplete = (Time.time - timeAtFadeBegin) / fadeOutTime;
42 | parentCG.alpha = 1f - pComplete;
43 | if (pComplete >= 1.0f)
44 | {
45 | framesToTurnOff--;
46 | if (framesToTurnOff <= 0)
47 | {
48 | fadingOut = false;
49 | splashArtFadedOut = true;
50 | }
51 | }
52 | }
53 |
54 | public void SetLoadingBar(float percent)
55 | {
56 | fillPercent = percent;
57 | logoBGForFill.fillAmount = fillPercent;
58 | }
59 |
60 | public void MoveLoadingBar(float percent)
61 | {
62 | fillPercent += percent;
63 | if (fillPercent >= 1.0f)
64 | {
65 | fillPercent = 1.0f;
66 | }
67 | logoBGForFill.fillAmount = fillPercent;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_Casino.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class GameMasterScript
6 | {
7 | public void StartCasino(CasinoGameType whichGame, int startBet)
8 | {
9 | CasinoScript.SetGame(whichGame);
10 |
11 | switch (whichGame)
12 | {
13 | case CasinoGameType.SLOTS:
14 | CasinoScript.SetBet(startBet);
15 | UIManagerScript.OpenSlotsGame();
16 | break;
17 | case CasinoGameType.BLACKJACK:
18 | CasinoScript.SetBet(startBet);
19 | UIManagerScript.OpenBlackjackGame();
20 | break;
21 | case CasinoGameType.CEELO:
22 | CasinoScript.SetBet(startBet);
23 | UIManagerScript.OpenCeeloGame();
24 | break;
25 | }
26 | }
27 |
28 | public void PlayCasinoGameWithSelectedBet()
29 | {
30 | PlayCasinoGame(CasinoScript.playerBet);
31 | }
32 |
33 | public void PlayCasinoGame(int bet)
34 | {
35 | if (heroPCActor.GetMoney() < bet)
36 | {
37 | UIManagerScript.PlaySound("Error");
38 | GameLogScript.LogWriteStringRef("log_error_notenoughmoney");
39 | return;
40 | }
41 |
42 | heroPCActor.ChangeMoney(-1 * bet);
43 |
44 | if (CasinoScript.curGameType == CasinoGameType.BLACKJACK)
45 | {
46 | UIManagerScript.SetBlackjackPlaying(true);
47 | }
48 | else if (CasinoScript.curGameType == CasinoGameType.CEELO)
49 | {
50 | UIManagerScript.SetCeeloPlaying(true);
51 | }
52 |
53 | CasinoScript.PlayCurrentGame(bet);
54 | }
55 |
56 | public void TakeCasinoAction(int action)
57 | {
58 | CasinoScript.TakeAction(action);
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Assets/CanvasGroupFader.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CanvasGroupFader : MonoBehaviour {
6 |
7 | CanvasGroup myCG;
8 | bool fading;
9 | bool fadingOut; // if false, then fadingIn
10 | float timeFadeStart;
11 | float totalFadeTime;
12 |
13 | // Use this for initialization
14 | void Awake () {
15 | if (myCG == null)
16 | {
17 | myCG = GetComponent();
18 | }
19 | if (myCG == null)
20 | {
21 | Debug.Log(gameObject.name + " couldn't find own CanvasGroup?");
22 | }
23 | }
24 |
25 | public void FadeIn(float time)
26 | {
27 | myCG.alpha = 0f;
28 | totalFadeTime = time;
29 | timeFadeStart = Time.time;
30 | fading = true;
31 | fadingOut = false;
32 | }
33 |
34 | public void SetAlpha(float value)
35 | {
36 | myCG.alpha = value;
37 | fading = false;
38 | fadingOut = false;
39 | }
40 |
41 | public void FadeOut(float time)
42 | {
43 | myCG.alpha = 1.0f;
44 | totalFadeTime = time;
45 | timeFadeStart = Time.time;
46 | fading = true;
47 | fadingOut = true;
48 | }
49 |
50 | // Update is called once per frame
51 | void Update () {
52 | if (!fading) return;
53 |
54 | float percentComplete = (Time.time - timeFadeStart) / totalFadeTime;
55 | if (percentComplete > 1.0f)
56 | {
57 | percentComplete = 1.0f;
58 | }
59 |
60 | if (fadingOut)
61 | {
62 | myCG.alpha = 1.0f - percentComplete;
63 | }
64 | else
65 | {
66 | myCG.alpha = percentComplete;
67 | }
68 |
69 | if (percentComplete == 1.0f)
70 | {
71 | fading = false;
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/Assets/Resources/SpriteGrayscale.shader:
--------------------------------------------------------------------------------
1 | // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
2 |
3 | Shader "Custom/GreyScaleFill" {
4 | Properties
5 | {
6 | [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
7 | _Color("Tint", Color) = (1,1,1,1)
8 | [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
9 | _GrayScale("Grayscale Percent Fill", Range(0.0, 1.0)) = 0.0
10 | }
11 |
12 | SubShader
13 | {
14 | Tags
15 | {
16 | "Queue" = "Transparent"
17 | "IgnoreProjector" = "True"
18 | "RenderType" = "Transparent"
19 | "PreviewType" = "Plane"
20 | "CanUseSpriteAtlas" = "True"
21 | }
22 |
23 | Cull Off
24 | Lighting Off
25 | ZWrite Off
26 | Blend One OneMinusSrcAlpha
27 |
28 | Pass
29 | {
30 | CGPROGRAM
31 | #pragma vertex vert
32 | #pragma fragment frag
33 | #pragma multi_compile _ PIXELSNAP_ON
34 | #pragma multi_compile _ GRAYSCALE_ON GRAYSCALE_OFF
35 | #include "UnityCG.cginc"
36 |
37 | struct appdata_t
38 | {
39 | float4 vertex : POSITION;
40 | float4 color : COLOR;
41 | float2 texcoord : TEXCOORD0;
42 |
43 | };
44 |
45 | struct v2f
46 | {
47 | float4 vertex : SV_POSITION;
48 | fixed4 color : COLOR;
49 | half2 texcoord : TEXCOORD0;
50 | };
51 |
52 | fixed4 _Color;
53 | float _GrayScale;
54 |
55 | v2f vert(appdata_t IN)
56 | {
57 | v2f OUT;
58 | OUT.vertex = UnityObjectToClipPos(IN.vertex);
59 | OUT.texcoord = IN.texcoord;
60 | OUT.color = IN.color * _Color;
61 | #ifdef PIXELSNAP_ON
62 | OUT.vertex = UnityPixelSnap(OUT.vertex);
63 | #endif
64 |
65 | return OUT;
66 | }
67 |
68 | sampler2D _MainTex;
69 |
70 | fixed4 frag(v2f IN) : SV_Target
71 | {
72 | fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
73 | c.rgb *= c.a;
74 | if (IN.texcoord.y > _GrayScale) {
75 | fixed avg = (c.r + c.g + c.b) / 3;
76 | c.rgb = avg;
77 | }
78 | return c;
79 | }
80 | ENDCG
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/Assets/SpriteFontManager.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1085100878161456}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1085100878161456
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4005482790969632}
22 | - component: {fileID: 114990756643595478}
23 | m_Layer: 0
24 | m_Name: SpriteFontManager
25 | m_TagString: Untagged
26 | m_Icon: {fileID: 0}
27 | m_NavMeshLayer: 0
28 | m_StaticEditorFlags: 0
29 | m_IsActive: 1
30 | --- !u!4 &4005482790969632
31 | Transform:
32 | m_ObjectHideFlags: 1
33 | m_PrefabParentObject: {fileID: 0}
34 | m_PrefabInternal: {fileID: 100100000}
35 | m_GameObject: {fileID: 1085100878161456}
36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
37 | m_LocalPosition: {x: 407.0665, y: 224.56836, z: 0}
38 | m_LocalScale: {x: 1, y: 1, z: 1}
39 | m_Children: []
40 | m_Father: {fileID: 0}
41 | m_RootOrder: 0
42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
43 | --- !u!114 &114990756643595478
44 | MonoBehaviour:
45 | m_ObjectHideFlags: 1
46 | m_PrefabParentObject: {fileID: 0}
47 | m_PrefabInternal: {fileID: 100100000}
48 | m_GameObject: {fileID: 1085100878161456}
49 | m_Enabled: 1
50 | m_EditorHideFlags: 0
51 | m_Script: {fileID: 11500000, guid: 04b4b416470443a4192f9e5535fa770c, type: 3}
52 | m_Name:
53 | m_EditorClassIdentifier:
54 | spriteFontAssets:
55 | - {fileID: 11400000, guid: d642fd3102069924594b51718df92589, type: 2}
56 | - {fileID: 11400000, guid: 477b09cbfb5ca42489bc308ab2118575, type: 2}
57 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_CutsceneAndAnimStates.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class GameMasterScript
6 | {
7 | public static bool IsGameInCutsceneOrDialog()
8 | {
9 | return IsNextTurnPausedByAnimations() || UIManagerScript.dialogBoxOpen;
10 | }
11 |
12 | public static bool IsNextTurnPausedByAnimations()
13 | {
14 | return gmsSingleton.animationPlaying ||
15 | gmsSingleton.animatingActorsPreventingUpdate.Count != 0 ||
16 | gmsSingleton.coroutinesPreventingUpdate.Count != 0;
17 | }
18 |
19 | public static void SetAnimationPlaying(bool play, bool fromCutscene = false)
20 | {
21 | gmsSingleton.animationPlaying = play;
22 |
23 | if (!play)
24 | {
25 | if (gmsSingleton.animationFromCutscene)
26 | {
27 | gmsSingleton.animationFromCutscene = false;
28 | }
29 | }
30 | else if (fromCutscene)
31 | {
32 | gmsSingleton.animationFromCutscene = true;
33 | }
34 | //Debug.Log("Animation: " + play + " FromCutscene: " + fromCutscene);
35 | }
36 |
37 | public static bool IsAnimationPlaying()
38 | {
39 | return gmsSingleton.animationPlaying;
40 | }
41 |
42 | public static bool IsAnimationPlayingFromCutscene()
43 | {
44 | return gmsSingleton.animationPlaying && gmsSingleton.animationFromCutscene;
45 | }
46 | public static void SetLevelChangeState(bool state)
47 | {
48 | levelChangeInProgress = state;
49 | }
50 |
51 | //This adds an actor to a watch list, and as long as it has queued animations or is moving,
52 | //the game will not update.
53 | public static void PauseUpdateForActorAnimation(Actor a)
54 | {
55 | gmsSingleton.animatingActorsPreventingUpdate.Add(a);
56 | }
57 | }
--------------------------------------------------------------------------------
/Assets/Resources/StatusEffects/XML/multidlc_groundeffects.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | exp_obj_blackhole_name
6 | status_blackhole
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | DAMAGE
18 | exp_obj_blackhole_name
19 | eff_blackholedamage
20 | BlackHoleExtraEffect
21 | 0.4|1
22 | ADJACENT
23 | NOTMYFACTION
24 | SHADOW
25 |
26 |
27 | BlackHoleHit,0.1
28 |
29 |
30 |
31 |
32 | abil_skill_flameslash_name
33 | status_axeflameslash
34 | GROUNDBASEDEFFECT
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | DAMAGE
45 | abil_skill_flameslash_name
46 | eff_axeflameslashdmg
47 | 1.3|3
48 | SINGLE
49 |
50 | NOTMYFACTION
51 | FIRE
52 |
53 |
54 |
55 |
56 |
57 | effect_eff_inferno_name
58 | status_tyrantinferno
59 | GROUNDBASEDEFFECT,PLAYANIMONEMPTY
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 | DAMAGE
69 | effect_eff_inferno_name
70 | eff_tyrantinferno
71 | 1|3
72 | ALL
73 | NOTMYFACTION
74 | FIRE
75 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/Assets/Introloop/Scripts/IntroloopAudio.cs:
--------------------------------------------------------------------------------
1 | /*
2 | /// Copyright (c) 2015 Sirawat Pitaksarit, Exceed7 Experiments LP
3 | /// http://www.exceed7.com/introloop
4 | */
5 |
6 | using UnityEngine;
7 | using System.Collections;
8 | using System;
9 |
10 | public class IntroloopAudio : ScriptableObject
11 | {
12 |
13 | [SerializeField, Range(0,1)]
14 | private float volume;
15 | [SerializeField, Range(0.1f,3)]
16 | private float pitch = 1;
17 |
18 | [SerializeField]
19 | public AudioClip audioClip;
20 | [SerializeField,PositiveFloat]
21 | internal float introBoundary;
22 | [SerializeField,PositiveFloat]
23 | internal float loopingBoundary;
24 | [SerializeField]
25 | internal bool nonLooping;
26 | [SerializeField]
27 | internal bool loopWholeAudio;
28 |
29 |
30 | public float Volume {
31 | get {
32 | return this.volume;
33 | }
34 | set {
35 | this.volume = value;
36 | }
37 | }
38 |
39 | internal float Pitch {
40 | get {
41 | return this.pitch;
42 | }
43 | }
44 |
45 | internal float IntroLength
46 | {
47 | get{
48 | return introBoundary/pitch;
49 | }
50 | }
51 |
52 | internal float LoopingLength
53 | {
54 | get{
55 | return (loopingBoundary - introBoundary)/pitch;
56 | }
57 | }
58 |
59 | public float ClipLength
60 | {
61 | get{
62 | return audioClip.length/pitch;
63 | }
64 | }
65 |
66 | //This is for timing the seam between intro and looping section instead of IntroLength
67 | //It intentionally does not get divided by pitch. Unity's audio position is not affected by pitch.
68 | internal float LoopBeginning
69 | {
70 | get{
71 | return introBoundary;
72 | }
73 | }
74 |
75 | internal void Preload()
76 | {
77 | audioClip.LoadAudioData();
78 | }
79 |
80 | internal void Unload()
81 | {
82 | audioClip.UnloadAudioData();
83 | }
84 | }
85 |
86 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_ThreeCommonArmorToRandomArmor.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_ThreeCommonArmorToRandomArmor : CraftingRecipe {
6 |
7 | List armorTypes;
8 |
9 | public override bool IsRecipePossible(List
- inputItems)
10 | {
11 | dictCachedItemsToUse.Clear();
12 | itemRefsUsed.Clear();
13 | int countOfArmor = 0;
14 | highestCVOfInputItems = 1.0f;
15 | armorTypes = new List();
16 |
17 | foreach (Item itm in inputItems)
18 | {
19 | if (itm.itemType != ItemTypes.ARMOR) continue;
20 | Armor arm = itm as Armor;
21 | if (arm.rarity != Rarity.COMMON) continue;
22 | countOfArmor++;
23 | dictCachedItemsToUse.Add(itm, 1);
24 | itemRefsUsed.Add(itm.actorRefName);
25 | if (itm.challengeValue > highestCVOfInputItems)
26 | {
27 | highestCVOfInputItems = itm.challengeValue;
28 | }
29 | if (!armorTypes.Contains(arm.armorType))
30 | {
31 | armorTypes.Add(arm.armorType);
32 | }
33 | if (countOfArmor == 3)
34 | {
35 | return true;
36 | }
37 | }
38 |
39 | return false;
40 | }
41 |
42 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
43 | {
44 | Armor lookupTemplate = GetPossibleItemRef("bodyarmor", highestCVOfInputItems - 0.2f, highestCVOfInputItems) as Armor;
45 |
46 | Armor armorToMake = new Armor();
47 | armorToMake.CopyFromItem(lookupTemplate);
48 | armorToMake.SetUniqueIDAndAddToDict();
49 | List
- returnItems = new List
- () { armorToMake };
50 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
51 | return returnItems;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/Assets/Resources/MapObjects/SpriteFontManager.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_SourcePrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1034132330002240}
13 | m_IsPrefabAsset: 1
14 | --- !u!1 &1034132330002240
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_CorrespondingSourceObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 6
20 | m_Component:
21 | - component: {fileID: 4500588851544228}
22 | - component: {fileID: 114904774395215702}
23 | m_Layer: 0
24 | m_Name: SpriteFontManager
25 | m_TagString: Untagged
26 | m_Icon: {fileID: 0}
27 | m_NavMeshLayer: 0
28 | m_StaticEditorFlags: 0
29 | m_IsActive: 1
30 | --- !u!4 &4500588851544228
31 | Transform:
32 | m_ObjectHideFlags: 1
33 | m_CorrespondingSourceObject: {fileID: 0}
34 | m_PrefabInternal: {fileID: 100100000}
35 | m_GameObject: {fileID: 1034132330002240}
36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
37 | m_LocalPosition: {x: 407.0665, y: 224.56836, z: 0}
38 | m_LocalScale: {x: 1, y: 1, z: 1}
39 | m_Children: []
40 | m_Father: {fileID: 0}
41 | m_RootOrder: 0
42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
43 | --- !u!114 &114904774395215702
44 | MonoBehaviour:
45 | m_ObjectHideFlags: 1
46 | m_CorrespondingSourceObject: {fileID: 0}
47 | m_PrefabInternal: {fileID: 100100000}
48 | m_GameObject: {fileID: 1034132330002240}
49 | m_Enabled: 1
50 | m_EditorHideFlags: 0
51 | m_Script: {fileID: 11500000, guid: 04b4b416470443a4192f9e5535fa770c, type: 3}
52 | m_Name:
53 | m_EditorClassIdentifier:
54 | spriteFontAssets:
55 | - {fileID: 11400000, guid: d642fd3102069924594b51718df92589, type: 2}
56 | - {fileID: 11400000, guid: 477b09cbfb5ca42489bc308ab2118575, type: 2}
57 | - {fileID: 11400000, guid: 4c8c5c639b49ab541ac9cb7c2123e1ec, type: 2}
58 |
--------------------------------------------------------------------------------
/Assets/LogosSettings.lighting:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!850595691 &4890085278179872738
4 | LightingSettings:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_Name: LogosSettings
10 | serializedVersion: 3
11 | m_GIWorkflowMode: 0
12 | m_EnableBakedLightmaps: 1
13 | m_EnableRealtimeLightmaps: 1
14 | m_RealtimeEnvironmentLighting: 1
15 | m_BounceScale: 1
16 | m_AlbedoBoost: 1
17 | m_IndirectOutputScale: 1
18 | m_UsingShadowmask: 0
19 | m_BakeBackend: 0
20 | m_LightmapMaxSize: 1024
21 | m_BakeResolution: 40
22 | m_Padding: 2
23 | m_TextureCompression: 1
24 | m_AO: 0
25 | m_AOMaxDistance: 1
26 | m_CompAOExponent: 1
27 | m_CompAOExponentDirect: 0
28 | m_ExtractAO: 0
29 | m_MixedBakeMode: 1
30 | m_LightmapsBakeMode: 1
31 | m_FilterMode: 1
32 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
33 | m_ExportTrainingData: 0
34 | m_TrainingDataDestination: TrainingData
35 | m_RealtimeResolution: 2
36 | m_ForceWhiteAlbedo: 0
37 | m_ForceUpdates: 0
38 | m_FinalGather: 0
39 | m_FinalGatherRayCount: 256
40 | m_FinalGatherFiltering: 1
41 | m_PVRCulling: 1
42 | m_PVRSampling: 1
43 | m_PVRDirectSampleCount: 32
44 | m_PVRSampleCount: 500
45 | m_PVREnvironmentSampleCount: 500
46 | m_PVREnvironmentReferencePointCount: 2048
47 | m_LightProbeSampleCountMultiplier: 4
48 | m_PVRBounces: 2
49 | m_PVRMinBounces: 2
50 | m_PVREnvironmentMIS: 0
51 | m_PVRFilteringMode: 2
52 | m_PVRDenoiserTypeDirect: 0
53 | m_PVRDenoiserTypeIndirect: 0
54 | m_PVRDenoiserTypeAO: 0
55 | m_PVRFilterTypeDirect: 0
56 | m_PVRFilterTypeIndirect: 0
57 | m_PVRFilterTypeAO: 0
58 | m_PVRFilteringGaussRadiusDirect: 1
59 | m_PVRFilteringGaussRadiusIndirect: 5
60 | m_PVRFilteringGaussRadiusAO: 2
61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
63 | m_PVRFilteringAtrousPositionSigmaAO: 1
64 |
--------------------------------------------------------------------------------
/Assets/MainSettings.lighting:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!850595691 &4890085278179872738
4 | LightingSettings:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_Name: MainSettings
10 | serializedVersion: 3
11 | m_GIWorkflowMode: 0
12 | m_EnableBakedLightmaps: 1
13 | m_EnableRealtimeLightmaps: 1
14 | m_RealtimeEnvironmentLighting: 1
15 | m_BounceScale: 1
16 | m_AlbedoBoost: 1
17 | m_IndirectOutputScale: 1
18 | m_UsingShadowmask: 0
19 | m_BakeBackend: 0
20 | m_LightmapMaxSize: 1024
21 | m_BakeResolution: 40
22 | m_Padding: 2
23 | m_TextureCompression: 1
24 | m_AO: 0
25 | m_AOMaxDistance: 1
26 | m_CompAOExponent: 1
27 | m_CompAOExponentDirect: 0
28 | m_ExtractAO: 0
29 | m_MixedBakeMode: 1
30 | m_LightmapsBakeMode: 1
31 | m_FilterMode: 1
32 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
33 | m_ExportTrainingData: 0
34 | m_TrainingDataDestination: TrainingData
35 | m_RealtimeResolution: 2
36 | m_ForceWhiteAlbedo: 0
37 | m_ForceUpdates: 0
38 | m_FinalGather: 0
39 | m_FinalGatherRayCount: 256
40 | m_FinalGatherFiltering: 1
41 | m_PVRCulling: 1
42 | m_PVRSampling: 1
43 | m_PVRDirectSampleCount: 32
44 | m_PVRSampleCount: 500
45 | m_PVREnvironmentSampleCount: 500
46 | m_PVREnvironmentReferencePointCount: 2048
47 | m_LightProbeSampleCountMultiplier: 4
48 | m_PVRBounces: 2
49 | m_PVRMinBounces: 2
50 | m_PVREnvironmentMIS: 0
51 | m_PVRFilteringMode: 2
52 | m_PVRDenoiserTypeDirect: 0
53 | m_PVRDenoiserTypeIndirect: 0
54 | m_PVRDenoiserTypeAO: 0
55 | m_PVRFilterTypeDirect: 0
56 | m_PVRFilterTypeIndirect: 0
57 | m_PVRFilterTypeAO: 0
58 | m_PVRFilteringGaussRadiusDirect: 1
59 | m_PVRFilteringGaussRadiusIndirect: 5
60 | m_PVRFilteringGaussRadiusAO: 2
61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
63 | m_PVRFilteringAtrousPositionSigmaAO: 1
64 |
--------------------------------------------------------------------------------
/Assets/Introloop/Scripts/IntroloopSettings.cs:
--------------------------------------------------------------------------------
1 | /*
2 | /// Copyright (c) 2015 Sirawat Pitaksarit, Exceed7 Experiments LP
3 | /// http://www.exceed7.com/introloop
4 | */
5 |
6 | using UnityEngine;
7 | using UnityEngine.Audio;
8 |
9 | public class IntroloopSettings : MonoBehaviour{
10 |
11 | ///
12 | ///This is the path of IntroloopPlayer template relative to Resources folder.
13 | ///
14 | public static readonly string defaultTemplatePath = "Introloop/IntroloopPlayer";
15 |
16 | ///
17 | ///The first call to IntroloopPlayer.Instance will spawn a GameObject of
18 | ///this name in your scene.
19 | ///
20 | public static readonly string defaultGameObjectName = "IntroloopPlayer";
21 |
22 | /* Planned feature
23 |
24 | ///
25 | /// The ID of this IntroloopPlayer instance. Using the singleton accessor IntroloopPlayer.Instance will
26 | /// result in getting the player of ID 0.
27 | ///
28 | /// Get the player of another ID with IntroloopPlayer.InstanceID(id)
29 | ///
30 | /// In template prefab path, the prefab with matching instanceID will get copied to the one in scene.
31 | /// Use this fact to assign different AudioMixerGroup to each instance so you can get
32 | /// the high level control of each one separately!
33 | ///
34 | [ImportantInt]
35 | public int instanceID;
36 |
37 | */
38 |
39 | [Space(8)]
40 | [Header("Settings")]
41 |
42 | ///
43 | ///Drag your AudioMixerGroup to this in IntroloopPlayer template.
44 | ///
45 | public AudioMixerGroup routeToMixerGroup;
46 |
47 | ///
48 | /// Method with "Fade" and without fade time parameter will use this length.
49 | ///
50 | [PositiveFloat("Sec.")]
51 | public float defaultFadeLength;
52 |
53 | ///
54 | /// Check this in your IntroloopPlayer template to log various debug data.
55 | ///
56 | public bool logInformation;
57 | }
58 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_TurnEnumerators.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System;
5 |
6 | public partial class GameMasterScript
7 | {
8 | struct NextTurnInfoStruct_Switch_Terrible
9 | {
10 | public bool runASAP;
11 | public TurnData td;
12 | public bool newTurn;
13 | public int idxThread;
14 | }
15 | private NextTurnInfoStruct_Switch_Terrible terribleNextTurnInfo;
16 |
17 | IEnumerator WaitThenContinueTurn(TurnData td, float time, Actor actorWhoMovedTurn)
18 | {
19 | yield return new WaitForSeconds(time);
20 | td.actorThatInitiatedTurn = actorWhoMovedTurn;
21 | SetAnimationPlaying(false);
22 | TryNextTurn(td, false, UnityEngine.Random.Range(0, Int32.MaxValue));
23 | }
24 |
25 | IEnumerator WaitCheckResultThenContinueTurn(CombatResult result, TurnData tData, float time, Actor initiator)
26 | {
27 | yield return new WaitForSeconds(time);
28 | tData.actorThatInitiatedTurn = initiator;
29 | SetAnimationPlaying(false);
30 | CombatResultsScript.CheckCombatResult(result, tData.GetSingleTargetActor(), MapMasterScript.activeMap);
31 | TryNextTurn(tData, false, UnityEngine.Random.Range(0, Int32.MaxValue));
32 | }
33 |
34 | public IEnumerator WaitCheckResultsThenContinueTurn(List results, List targets, float time, TurnData td, Actor initiator, int iThreadIndex = 0)
35 | {
36 | #if UNITY_EDITOR
37 | //Debug.Log("Waiting " + time + " to continue turn " + turnNumber + " idx " + iThreadIndex);
38 | #endif
39 | yield return new WaitForSeconds(time);
40 | SetAnimationPlaying(false);
41 | td.actorThatInitiatedTurn = initiator;
42 | for (int i = 0; i < results.Count; i++)
43 | {
44 | CombatResultsScript.CheckCombatResult(results[i], targets[i], MapMasterScript.activeMap);
45 | }
46 | TryNextTurn(td, false, UnityEngine.Random.Range(0, Int32.MaxValue));
47 | }
48 |
49 | }
--------------------------------------------------------------------------------
/Assets/OscillateMovement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class OscillateMovement : MonoBehaviour
6 | {
7 |
8 | public float loopTime = 0.5f;
9 | public float maxDistance = 0.2f;
10 |
11 | Vector2 startPosition;
12 |
13 | bool initialized = false;
14 |
15 | bool animatingUp = false;
16 | float timeAtStateChange = 0;
17 |
18 | // Start is called before the first frame update
19 | void Awake()
20 | {
21 | Initialize();
22 | }
23 |
24 | void OnEnable()
25 | {
26 | Initialize();
27 | }
28 |
29 | void Initialize()
30 | {
31 | if (!initialized)
32 | {
33 | startPosition = transform.localPosition;
34 | initialized = true;
35 | }
36 |
37 | StartAnimation();
38 | }
39 |
40 | void StartAnimation()
41 | {
42 | animatingUp = false;
43 | timeAtStateChange = Time.time;
44 | }
45 |
46 | // Update is called once per frame
47 | void Update()
48 | {
49 | float time = Time.time;
50 |
51 | float pComplete = (time - timeAtStateChange) / loopTime;
52 |
53 | bool complete = false;
54 |
55 | if (pComplete >= 1f)
56 | {
57 | pComplete = 1f;
58 | complete = true;
59 | }
60 |
61 | Vector2 pos = transform.localPosition;
62 | float y = startPosition.y;
63 |
64 | if (animatingUp)
65 | {
66 | y = EasingFunction.EaseOutQuad(startPosition.y, startPosition.y + maxDistance, pComplete);
67 | }
68 | else
69 | {
70 | y = EasingFunction.EaseOutQuad(startPosition.y + maxDistance, startPosition.y, pComplete);
71 | }
72 |
73 | pos.y = y;
74 |
75 | transform.localPosition = pos;
76 |
77 | if (complete)
78 | {
79 | animatingUp = !animatingUp;
80 | timeAtStateChange = time;
81 | }
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/Assets/Resources/CampaignSelectGrayscaler.shader:
--------------------------------------------------------------------------------
1 | // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
2 |
3 | Shader "Custom/GreyScalePercent" {
4 | Properties
5 | {
6 | [PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
7 | _Color("Tint", Color) = (1,1,1,1)
8 | [MaterialToggle] PixelSnap("Pixel snap", Float) = 0
9 | _GrayScale("_GrayScale", Range(0.0, 1.0)) = 0.0
10 | }
11 |
12 | SubShader
13 | {
14 | Tags
15 | {
16 | "Queue" = "Transparent"
17 | "IgnoreProjector" = "True"
18 | "RenderType" = "Transparent"
19 | "PreviewType" = "Plane"
20 | "CanUseSpriteAtlas" = "True"
21 | }
22 |
23 | Cull Off
24 | Lighting Off
25 | ZWrite Off
26 | Blend One OneMinusSrcAlpha
27 |
28 | Pass
29 | {
30 | CGPROGRAM
31 | #pragma vertex vert
32 | #pragma fragment frag
33 | #pragma multi_compile _ PIXELSNAP_ON
34 | #pragma multi_compile _ GRAYSCALE_ON GRAYSCALE_OFF
35 | #include "UnityCG.cginc"
36 |
37 | struct appdata_t
38 | {
39 | float4 vertex : POSITION;
40 | float4 color : COLOR;
41 | float2 texcoord : TEXCOORD0;
42 |
43 | };
44 |
45 | struct v2f
46 | {
47 | float4 vertex : SV_POSITION;
48 | fixed4 color : COLOR;
49 | half2 texcoord : TEXCOORD0;
50 | };
51 |
52 | fixed4 _Color;
53 | float _GrayScale;
54 |
55 | v2f vert(appdata_t IN)
56 | {
57 | v2f OUT;
58 | OUT.vertex = UnityObjectToClipPos(IN.vertex);
59 | OUT.texcoord = IN.texcoord;
60 | OUT.color = IN.color * _Color;
61 | #ifdef PIXELSNAP_ON
62 | OUT.vertex = UnityPixelSnap(OUT.vertex);
63 | #endif
64 |
65 | return OUT;
66 | }
67 |
68 | sampler2D _MainTex;
69 |
70 | fixed4 frag(v2f IN) : SV_Target
71 | {
72 | fixed4 c = tex2D(_MainTex, IN.texcoord) * IN.color;
73 | c.rgb *= c.a;
74 | fixed madGray = (c.r + c.g + c.b) / 3;
75 | fixed4 avg;
76 | avg.r = lerp(c.r, madGray, _GrayScale);
77 | avg.g = lerp(c.g, madGray, _GrayScale);
78 | avg.b = lerp(c.b, madGray, _GrayScale);
79 | avg.a = c.a;
80 | c.rgb = avg;
81 |
82 | return c;
83 | }
84 | ENDCG
85 | }
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/Assets/MasteriesBakedData.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class MasteriesBakedData {
6 |
7 | public static List allBaseWeaponMasteries = new List()
8 | {
9 | "skill_clawmastery1", "skill_swordmastery1", "skill_axemastery1", "skill_macemastery1", "skill_daggermastery1",
10 | "skill_staffmastery1", "skill_bowmastery1", "skill_spearmastery1", "skill_fistmastery1"
11 | };
12 |
13 | public static List allArmorMasteries = new List()
14 | {
15 | "skill_lightarmormastery1", "skill_mediumarmormastery1", "skill_heavyarmormastery1"
16 | };
17 |
18 |
19 | ///
20 | /// Game MUST be started with a heroPCActor for this to work!
21 | ///
22 | ///
23 | public static string GetUnknownWeaponMastery()
24 | {
25 | List availableMasteries = new List();
26 |
27 | foreach (string str in MasteriesBakedData.allBaseWeaponMasteries)
28 | {
29 | if (!GameMasterScript.heroPCActor.myAbilities.HasAbilityRef(str))
30 | {
31 | availableMasteries.Add(str);
32 | }
33 | }
34 |
35 | if (availableMasteries.Count == 0) return "";
36 | return availableMasteries.GetRandomElement();
37 | }
38 |
39 | ///
40 | /// Game MUST be started with a heroPCActor for this to work!
41 | ///
42 | ///
43 | public static string GetUnknownArmorMastery()
44 | {
45 | List availableMasteries = new List();
46 |
47 | foreach (string str in MasteriesBakedData.allArmorMasteries)
48 | {
49 | if (!GameMasterScript.heroPCActor.myAbilities.HasAbilityRef(str))
50 | {
51 | availableMasteries.Add(str);
52 | }
53 | }
54 |
55 | if (availableMasteries.Count == 0) return "";
56 | return availableMasteries.GetRandomElement();
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_TwoRelicsToRelic.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System;
5 |
6 | public class CraftingRecipe_TwoRelicsToRelic : CraftingRecipe
7 | {
8 |
9 | float totalCVOfRelics = 0f;
10 |
11 | public override bool IsRecipePossible(List
- inputItems)
12 | {
13 | dictCachedItemsToUse.Clear();
14 | itemRefsUsed.Clear();
15 | highestCVOfInputItems = 1.0f;
16 | totalCVOfRelics = 0f;
17 |
18 | foreach (Item itm in inputItems)
19 | {
20 | if (!itm.customItemFromGenerator) continue;
21 |
22 | dictCachedItemsToUse.Add(itm, 1);
23 | highestCVOfInputItems = itm.challengeValue;
24 | totalCVOfRelics += itm.challengeValue;
25 |
26 | if (dictCachedItemsToUse.Values.Count == 2) return true;
27 | }
28 |
29 | return false;
30 | }
31 |
32 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
33 | {
34 | float targetCV = (totalCVOfRelics / 2f);
35 |
36 | int targetRank = BalanceData.ConvertChallengeValueToRank(targetCV);
37 |
38 | if (UnityEngine.Random.Range(0, 2) == 0 && targetRank < 10)
39 | {
40 | targetCV += 0.05f;
41 | }
42 |
43 |
44 | Item copiedRelic = null;
45 |
46 | try
47 | {
48 | Item legRelic = LegendaryMaker.CreateNewLegendaryItem(UnityEngine.Random.Range(targetCV, targetCV));
49 | copiedRelic = LootGeneratorScript.CreateItemFromTemplateRef(legRelic.actorRefName, targetCV, 0f, false, true);
50 | }
51 | catch(Exception e)
52 | {
53 | if (Debug.isDebugBuild) Debug.Log("Failed making random relic: " + e);
54 | copiedRelic = LootGeneratorScript.GenerateLoot(2f, 5f);
55 | }
56 |
57 | List
- returnItems = new List
- () { copiedRelic };
58 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
59 | return returnItems;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/Assets/MapTileDisplayable.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 |
4 | public class MapTileDisplayable : MonoBehaviour {
5 |
6 | public bool alive;
7 | private Vector2 truePosition;
8 | private Vector2 drawPosition;
9 | private Vector2 gridPosition;
10 | public Vector2 posInArray;
11 | public bool visible;
12 | public bool blocking;
13 | public VisualTileType vttype;
14 | public TileTypes internalTileType;
15 |
16 | public bool childTileVisible;
17 | public bool childTileDisplayRadius;
18 | public bool childTileExplored;
19 |
20 | // Use this for initialization
21 | void Start () {
22 |
23 | }
24 |
25 | void Awake ()
26 | {
27 | posInArray = new Vector2();
28 | }
29 |
30 | public void SetPosInArray(int x, int y)
31 | {
32 | posInArray = new Vector2(x, y);
33 | }
34 |
35 | public void SetBlocking(bool block)
36 | {
37 | blocking = block;
38 | }
39 |
40 | public bool GetBlocking()
41 | {
42 | return blocking;
43 | }
44 |
45 | public void SetGridPosition(Vector2 pos)
46 | {
47 | gridPosition.x = pos.x;
48 | gridPosition.y = pos.y;
49 | }
50 |
51 | public Vector2 GetGridPosition()
52 | {
53 | return gridPosition;
54 | }
55 |
56 | public bool GetVisible()
57 | {
58 | return visible;
59 | }
60 |
61 | public void SetVisible(bool visible)
62 | {
63 | this.visible = visible;
64 | }
65 |
66 | public bool IsAlive()
67 | {
68 | return alive;
69 | }
70 |
71 | public void SetAlive(bool alive)
72 | {
73 | this.alive = alive;
74 | }
75 |
76 | public void SetDrawPosition(Vector2 pos)
77 | {
78 | drawPosition = pos;
79 | }
80 |
81 | public Vector2 GetDrawPosition()
82 | {
83 | return drawPosition;
84 | }
85 |
86 | public void SetTruePosition(Vector2 pos)
87 | {
88 | truePosition = pos;
89 | }
90 |
91 | public Vector2 GetTruePosition()
92 | {
93 | return truePosition;
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_TurnEndFunctions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System.Reflection;
5 | using System;
6 |
7 | public partial class GameMasterScript
8 | {
9 | public Dictionary, string[]> dictEndOfTurnFunctions;
10 |
11 | public static void AddEndOfTurnFunction(Action newFunction, string[] args)
12 | {
13 | if (!gmsSingleton.dictEndOfTurnFunctions.ContainsKey(newFunction))
14 | {
15 | gmsSingleton.dictEndOfTurnFunctions.Add(newFunction, args);
16 | }
17 | else
18 | {
19 | gmsSingleton.dictEndOfTurnFunctions[newFunction] = args;
20 | }
21 | }
22 |
23 | public void ProcessAllEndOfTurnFunctions()
24 | {
25 | // Check if active map adds its own function!
26 | if (!string.IsNullOrEmpty(MapMasterScript.activeMap.dungeonLevelData.script_onTurnEnd))
27 | {
28 | Action myFunc;
29 | if (TDGenericFunctions.dictDelegates.TryGetValue(MapMasterScript.activeMap.dungeonLevelData.script_onTurnEnd, out myFunc))
30 | {
31 | myFunc(new string[0]);
32 | }
33 | else
34 | {
35 | MethodInfo runscript = CustomAlgorithms.TryGetMethod(typeof(TDGenericFunctions), MapMasterScript.activeMap.dungeonLevelData.script_onTurnEnd);
36 | object[] paramList = new object[1];
37 | paramList[0] = new string[0];
38 | runscript.Invoke(null, paramList);
39 | }
40 | }
41 |
42 | // Runs all enqueued functions *in the order they were added*
43 | // These functions should live in TDGenericFunctions
44 | foreach (Action queuedAction in dictEndOfTurnFunctions.Keys)
45 | {
46 | string[] argsForAction = dictEndOfTurnFunctions[queuedAction];
47 | queuedAction.Invoke(argsForAction);
48 | }
49 |
50 | // Now that all functions have been processed, clear the dictionary.
51 | dictEndOfTurnFunctions.Clear();
52 | }
53 | }
--------------------------------------------------------------------------------
/Assets/OutOfBoundsUICheckScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | public class OutOfBoundsUICheckScript : MonoBehaviour {
7 |
8 | TextMeshProUGUI[] myTMPro;
9 | bool initialized = false;
10 | bool textActive = true;
11 |
12 | const int FRAMES_TO_UPDATE = 4;
13 | int frameUpdate = 0;
14 |
15 | void Start()
16 | {
17 | myTMPro = GetComponentsInChildren();
18 | initialized = true;
19 | }
20 |
21 | void SetTextActiveState(bool state)
22 | {
23 | if (textActive == state)
24 | {
25 | return;
26 | }
27 |
28 | textActive = state;
29 | for (int i = 0; i < myTMPro.Length; i++)
30 | {
31 | myTMPro[i].gameObject.SetActive(state);
32 | }
33 | }
34 |
35 | void Update () {
36 | if (!initialized) return;
37 | if (!GameMasterScript.gameLoadSequenceCompleted) return;
38 |
39 | // Don't need to recalculate this every frame, it's pretty expensive.
40 | frameUpdate++;
41 | if (frameUpdate < FRAMES_TO_UPDATE)
42 | {
43 | return;
44 | }
45 | frameUpdate = 0;
46 | Vector3 tPos = gameObject.transform.position;
47 | if (textActive)
48 | {
49 | if (tPos.y > Screen.height + 25f)
50 | {
51 | // We're off the screen. Can disable the object entirely?
52 | if (gameObject.activeSelf)
53 | {
54 | gameObject.SetActive(false);
55 | }
56 | SetTextActiveState(false);
57 | }
58 | else if (tPos.y < -50f)
59 | {
60 | // Text hasn't reached the bottom of screen yet.
61 | SetTextActiveState(false);
62 | }
63 | }
64 | else
65 | {
66 | if (tPos.y <= Screen.height + 25f && tPos.y >= -50f)
67 | {
68 | SetTextActiveState(true);
69 | }
70 | }
71 |
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/Assets/PlayerMods_ListEntry.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 | using UnityEngine.UI;
6 |
7 | public class PlayerMods_ListEntry : MonoBehaviour {
8 |
9 | public Image modIcon;
10 | public TextMeshProUGUI modName;
11 | public TextMeshProUGUI modDescription;
12 | public int modFileCount;
13 | public Toggle modToggle;
14 |
15 | public ModDataPack dataPack;
16 |
17 | bool dataLoaded = false;
18 |
19 | IEnumerator WaitThenCheckToggleValue()
20 | {
21 | yield return new WaitForSeconds(0.05f);
22 | OnToggleValueChanged();
23 | }
24 |
25 | public void OnToggleValueChanged()
26 | {
27 | if (!dataLoaded && gameObject.activeSelf)
28 | {
29 | StartCoroutine(WaitThenCheckToggleValue());
30 | return;
31 | }
32 | //Debug.Log("Toggle is " + modToggle.isOn + " datapack value was " + dataPack.enabled);
33 | dataPack.enabled = modToggle.isOn;
34 | if (dataPack.enabled)
35 | {
36 | UIManagerScript.PlayCursorSound("UITick");
37 | }
38 | else
39 | {
40 | UIManagerScript.PlayCursorSound("UITock");
41 | }
42 | RefreshHighlights();
43 | }
44 |
45 | public void LoadModData()
46 | {
47 | modIcon.sprite = dataPack.logoSprite;
48 | modName.text = dataPack.modName;
49 | modDescription.text = dataPack.modDescription;
50 | modToggle.isOn = dataPack.enabled;
51 | dataLoaded = true;
52 | RefreshHighlights();
53 | }
54 |
55 | void RefreshHighlights()
56 | {
57 | if (dataPack == null)
58 | {
59 | return;
60 | }
61 | switch (dataPack.enabled)
62 | {
63 | case true:
64 | modName.text = UIManagerScript.greenHexColor + dataPack.modName + " (Active!)";
65 | break;
66 | case false:
67 | modName.text = dataPack.modName + " (Inactive)";
68 | break;
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Assets/Resources/SpriteEffects/FireBombEffectSystem.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &116086
4 | GameObject:
5 | m_ObjectHideFlags: 0
6 | m_PrefabParentObject: {fileID: 0}
7 | m_PrefabInternal: {fileID: 100100000}
8 | serializedVersion: 5
9 | m_Component:
10 | - component: {fileID: 418978}
11 | - component: {fileID: 11482308}
12 | m_Layer: 0
13 | m_Name: FireBombEffectSystem
14 | m_TagString: Untagged
15 | m_Icon: {fileID: 0}
16 | m_NavMeshLayer: 0
17 | m_StaticEditorFlags: 0
18 | m_IsActive: 1
19 | --- !u!4 &418978
20 | Transform:
21 | m_ObjectHideFlags: 1
22 | m_PrefabParentObject: {fileID: 0}
23 | m_PrefabInternal: {fileID: 100100000}
24 | m_GameObject: {fileID: 116086}
25 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
26 | m_LocalPosition: {x: 0, y: 0, z: 0}
27 | m_LocalScale: {x: 1, y: 1, z: 1}
28 | m_Children: []
29 | m_Father: {fileID: 0}
30 | m_RootOrder: 0
31 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
32 | --- !u!114 &11482308
33 | MonoBehaviour:
34 | m_ObjectHideFlags: 1
35 | m_PrefabParentObject: {fileID: 0}
36 | m_PrefabInternal: {fileID: 100100000}
37 | m_GameObject: {fileID: 116086}
38 | m_Enabled: 1
39 | m_EditorHideFlags: 0
40 | m_Script: {fileID: 11500000, guid: fbfcc75de3ad54e4bb9b4313ab5bdd6e, type: 3}
41 | m_Name:
42 | m_EditorClassIdentifier:
43 | mySpriteEffects:
44 | - spriteEffect: FireBombEffect
45 | randomSpawnXMin: -1
46 | randomSpawnXMax: 1
47 | randomSpawnYMin: -1
48 | randomSpawnYMax: 1
49 | numEffectTriggers: 4
50 | sequential: 1
51 | animDelay: 0.33
52 | overrideIndividualAudio: 0
53 | lifetime: 0
54 | refName: FireBombEffectSystem
55 | alwaysFlipAxes: 0
56 | randomlyFlipSpriteX: 0
57 | randomlyFlipSpriteY: 0
58 | loopAtEnd: 0
59 | setChildToParent: 0
60 | spawnTowardEdges: 0
61 | sparkleSystem: 0
62 | --- !u!1001 &100100000
63 | Prefab:
64 | m_ObjectHideFlags: 1
65 | serializedVersion: 2
66 | m_Modification:
67 | m_TransformParent: {fileID: 0}
68 | m_Modifications: []
69 | m_RemovedComponents: []
70 | m_ParentPrefab: {fileID: 0}
71 | m_RootGameObject: {fileID: 116086}
72 | m_IsPrefabParent: 1
73 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_ThreeCommonWeaponsToRandomWeapon.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_ThreeCommonWeaponsToRandomWeapon : CraftingRecipe {
6 |
7 | List wTypes;
8 |
9 | public override bool IsRecipePossible(List
- inputItems)
10 | {
11 | dictCachedItemsToUse.Clear();
12 | itemRefsUsed.Clear();
13 | int countOfWeapons = 0;
14 | highestCVOfInputItems = 1.0f;
15 | wTypes = new List();
16 |
17 | foreach (Item itm in inputItems)
18 | {
19 | if (itm.itemType != ItemTypes.WEAPON) continue;
20 | Weapon w = itm as Weapon;
21 | if (w.rarity != Rarity.COMMON) continue;
22 | countOfWeapons++;
23 | dictCachedItemsToUse.Add(itm, 1);
24 | itemRefsUsed.Add(itm.actorRefName);
25 | if (itm.challengeValue > highestCVOfInputItems)
26 | {
27 | highestCVOfInputItems = itm.challengeValue;
28 | }
29 | if (!wTypes.Contains(w.weaponType))
30 | {
31 | wTypes.Add(w.weaponType);
32 | }
33 | if (countOfWeapons == 3)
34 | {
35 | return true;
36 | }
37 | }
38 |
39 | return false;
40 | }
41 |
42 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
43 | {
44 | Weapon lookupTemplate = GetPossibleItemRef("weapons", highestCVOfInputItems - 0.2f, highestCVOfInputItems) as Weapon;
45 | while (wTypes.Contains(lookupTemplate.weaponType))
46 | {
47 | lookupTemplate = GetPossibleItemRef("weapons", highestCVOfInputItems - 0.2f, highestCVOfInputItems) as Weapon;
48 | }
49 |
50 | Weapon weapToMake = new Weapon();
51 | weapToMake.CopyFromItem(lookupTemplate);
52 | weapToMake.SetUniqueIDAndAddToDict();
53 | List
- returnItems = new List
- () { weapToMake };
54 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
55 | return returnItems;
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Assets/CraftingRecipe_LucidOrbAndGemToRandomLucid.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_LucidOrbAndGemToRandomLucid : CraftingRecipe {
6 |
7 | public Item gemToUse;
8 | public Item orbToUse;
9 |
10 | public override bool IsRecipePossible(List
- inputItems)
11 | {
12 | dictCachedItemsToUse.Clear();
13 | bool hasOrb = false;
14 | bool hasGem = false;
15 |
16 | foreach (Item itm in inputItems)
17 | {
18 | if (itm.IsLucidOrb())
19 | {
20 | if (hasOrb)
21 | {
22 | if (itm.challengeValue > orbToUse.challengeValue)
23 | {
24 | orbToUse = itm;
25 | }
26 | }
27 | else
28 | {
29 | orbToUse = itm;
30 | hasOrb = true;
31 | }
32 | }
33 |
34 | if (itm.CheckTag((int)ItemFilters.GEM))
35 | {
36 | if (hasGem)
37 | {
38 | if (itm.challengeValue > gemToUse.challengeValue)
39 | {
40 | gemToUse = itm;
41 | }
42 | }
43 | else
44 | {
45 | gemToUse = itm;
46 | hasGem = true;
47 | }
48 | }
49 |
50 | if (hasOrb && hasGem)
51 | {
52 | dictCachedItemsToUse.Add(orbToUse, 1);
53 | dictCachedItemsToUse.Add(gemToUse, 1);
54 | return true;
55 | }
56 | }
57 |
58 | return false;
59 | }
60 |
61 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
62 | {
63 | float cv = gemToUse.challengeValue;
64 | Item newOrb = ItemWorldUIScript.CreateItemWorldOrb(cv, true, false);
65 | List
- returnItems = new List
- () { newOrb };
66 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
67 | return returnItems;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Assets/Standard Assets/AssetBundleManager/Utility.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | #if UNITY_EDITOR
3 | using UnityEditor;
4 | #endif
5 |
6 | namespace AssetBundles
7 | {
8 | public class Utility
9 | {
10 | public const string AssetBundlesOutputPath = "AssetBundles";
11 |
12 | public static string GetPlatformName()
13 | {
14 | #if UNITY_EDITOR
15 | return GetPlatformForAssetBundles(EditorUserBuildSettings.activeBuildTarget);
16 | #else
17 | return GetPlatformForAssetBundles(Application.platform);
18 | #endif
19 | }
20 |
21 | #if UNITY_EDITOR
22 | private static string GetPlatformForAssetBundles(BuildTarget target)
23 | {
24 | switch(target)
25 | {
26 | case BuildTarget.Android:
27 | return "Android";
28 | case BuildTarget.iOS:
29 | return "iOS";
30 | case BuildTarget.WebGL:
31 | return "WebGL";
32 | //case BuildTarget.WebPlayer:
33 | // return "WebPlayer";
34 | case BuildTarget.StandaloneWindows:
35 | case BuildTarget.StandaloneWindows64:
36 | return "Windows";
37 | case BuildTarget.StandaloneOSXIntel:
38 | case BuildTarget.StandaloneOSXIntel64:
39 | case BuildTarget.StandaloneOSX:
40 | return "OSX";
41 | // Add more build targets for your own.
42 | // If you add more targets, don't forget to add the same platforms to GetPlatformForAssetBundles(RuntimePlatform) function.
43 | default:
44 | return null;
45 | }
46 | }
47 | #endif
48 |
49 | private static string GetPlatformForAssetBundles(RuntimePlatform platform)
50 | {
51 | switch(platform)
52 | {
53 | case RuntimePlatform.Android:
54 | return "Android";
55 | case RuntimePlatform.IPhonePlayer:
56 | return "iOS";
57 | case RuntimePlatform.WebGLPlayer:
58 | return "WebGL";
59 | //case RuntimePlatform.OSXWebPlayer:
60 | //case RuntimePlatform.WindowsWebPlayer:
61 | // return "WebPlayer";
62 | case RuntimePlatform.WindowsPlayer:
63 | return "Windows";
64 | case RuntimePlatform.OSXPlayer:
65 | return "OSX";
66 | // Add more build targets for your own.
67 | // If you add more targets, don't forget to add the same platforms to GetPlatformForAssetBundles(RuntimePlatform) function.
68 | default:
69 | return null;
70 | }
71 | }
72 | }
73 | }
--------------------------------------------------------------------------------
/Assets/ParallaxHandler.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class ParallaxHandler : MonoBehaviour {
7 |
8 | public float startXPosition;
9 | public float startYPosition;
10 | public float parallaxMult;
11 | public float playerMinX;
12 | public float playerMaxX;
13 | public float playerMinY;
14 | public float playerMaxY;
15 | public bool moveHorizontal;
16 | public bool moveVertical;
17 |
18 | // Update is called once per frame
19 | void Update ()
20 | {
21 | if (UIManagerScript.globalDialogButtonResponse == DialogButtonResponse.BACKTOTITLE || !GameMasterScript.gameLoadSequenceCompleted || GameMasterScript.applicationQuittingOrChangingScenes)
22 | {
23 | return;
24 | }
25 |
26 | Vector2 pos = new Vector2();
27 | Vector2 vFocusPosition = GameMasterScript.cameraScript.transform.position;
28 |
29 | //If the camera is in bounds, adjust accordingly
30 | if (vFocusPosition.x >= playerMinX && vFocusPosition.x <= playerMaxX)
31 | {
32 | pos.x = startXPosition - (vFocusPosition.x * parallaxMult);
33 | }
34 | else if (vFocusPosition.x < playerMinX)
35 | {
36 | pos.x = startXPosition - (playerMinX * parallaxMult);
37 | }
38 | else
39 | {
40 | pos.x = startXPosition - (playerMaxX * parallaxMult);
41 | }
42 |
43 | //Same with y values
44 | if (vFocusPosition.y >= playerMinY && vFocusPosition.y <= playerMaxY)
45 | {
46 | pos.y = startYPosition + (vFocusPosition.y * parallaxMult);
47 | }
48 | else if (vFocusPosition.y < playerMinY)
49 | {
50 | pos.y = startYPosition + (playerMinY * parallaxMult);
51 | }
52 | else
53 | {
54 | pos.y = startYPosition + (playerMaxY * parallaxMult);
55 | }
56 |
57 | if (!moveVertical)
58 | {
59 | pos.y = startYPosition;
60 | }
61 | if (!moveHorizontal)
62 | {
63 | pos.x = startXPosition;
64 | }
65 |
66 | transform.position = pos;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/Assets/AutoEatFoodLogic.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public static class AutoEatFoodLogic
6 | {
7 | public const int AUTO_EAT_INTERVAL = 10;
8 | public const float MIN_HEALTH_EAT = 0.5f;
9 |
10 | public static void CheckForAndTryAutoEat()
11 | {
12 | if (!PlayerOptions.autoEatFood)
13 | {
14 | //Debug.Log("Options off.");
15 | return;
16 | }
17 |
18 | if (GameMasterScript.turnNumber - GameMasterScript.heroPCActor.lastTurnDamaged < AUTO_EAT_INTERVAL ||
19 | GameMasterScript.heroPCActor.TurnsSinceLastCombatAction < AUTO_EAT_INTERVAL)
20 | {
21 | //Debug.Log("Too soon. " + GameMasterScript.turnNumber + " dmged " + GameMasterScript.heroPCActor.lastTurnDamaged + " last cmb: " + GameMasterScript.heroPCActor.TurnsSinceLastCombatAction);
22 | return;
23 | }
24 |
25 | if (GameMasterScript.heroPCActor.myStats.GetCurStatAsPercentOfMax(StatTypes.HEALTH) > MIN_HEALTH_EAT)
26 | {
27 | //Debug.Log("Health above min");
28 | return;
29 | }
30 |
31 | if (!JobTrialScript.CanPlayerUseConsumable())
32 | {
33 | //Debug.Log("No job trial");
34 | return;
35 | }
36 |
37 | Item toEat = null;
38 | if (!CanEatFoodThisTurn(out toEat))
39 | {
40 | //Debug.Log("Full or nothing to eat");
41 | return;
42 | }
43 |
44 | GameMasterScript.gmsSingleton.ActuallyUseConsumable(toEat as Consumable);
45 | }
46 |
47 | static bool CanEatFoodThisTurn(out Item restorativeToUse)
48 | {
49 | restorativeToUse = null;
50 | if (GameMasterScript.heroPCActor.myStats.CheckHasStatusName("status_foodfull")) return false;
51 |
52 | if (GameMasterScript.heroPCActor.myInventory.HasAnyNonSpicedNonInstantRestorativeFood(out restorativeToUse))
53 | {
54 | Item curry = null;
55 | if (GameMasterScript.heroPCActor.myInventory.GetCurry(out curry))
56 | {
57 | restorativeToUse = curry;
58 | }
59 | return true;
60 | }
61 |
62 | return false;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CustomFunctionsFromXML/PostSummonFunctions.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System.Linq;
5 |
6 | public class PostSummonFunctions
7 | {
8 | public static void AssignMeteorKeyAnimPositions(SummonActorEffect sae, Actor summonedActor)
9 | {
10 | int numMeteors = GameMasterScript.gmsSingleton.ReadTempGameData("num_meteors");
11 | int meteorCounter = GameMasterScript.gmsSingleton.ReadTempGameData("meteor_counter");
12 |
13 | if (meteorCounter >= numMeteors)
14 | {
15 | // Matched everything for this spellcast.
16 | return;
17 | }
18 |
19 | for (int i = 0; i < numMeteors; i++)
20 | {
21 | float xPos = GameMasterScript.gmsSingleton.ReadTempFloatData("meteor" + i + "x");
22 | float yPos = GameMasterScript.gmsSingleton.ReadTempFloatData("meteor" + i + "y");
23 |
24 | if (CustomAlgorithms.CompareFloats(summonedActor.GetPos().x, xPos) && CustomAlgorithms.CompareFloats(summonedActor.GetPos().y, yPos))
25 | {
26 | summonedActor.SetActorData("meteoranim", 1);
27 | meteorCounter++;
28 | GameMasterScript.gmsSingleton.SetTempGameData("meteor_counter", meteorCounter);
29 | break;
30 | }
31 | }
32 | }
33 |
34 | public static void TryExtendCalligrapherSummon(SummonActorEffect sae, Actor summonedActor)
35 | {
36 | if (GameMasterScript.heroPCActor.myStats.CheckHasActiveStatusName("dualwielderbonus2"))
37 | {
38 | summonedActor.turnsToDisappear *= 2;
39 | summonedActor.maxTurnsToDisappear *= 2;
40 | }
41 | }
42 |
43 | public static void FillCombatBiography(SummonActorEffect sae, Actor summonedActor)
44 | {
45 | int strokesToWrite = 1;
46 | int statusCount = GameMasterScript.heroPCActor.myStats.CheckStatusQuantity("brushstroke_charge");
47 | strokesToWrite += statusCount;
48 | GameMasterScript.heroPCActor.myStats.RemoveAllStatusByRef("brushstroke_charge");
49 | if (strokesToWrite > 6) strokesToWrite = 6;
50 | summonedActor.SetActorData("brushstrokes", strokesToWrite);
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_DataDictionaries.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public partial class GameMasterScript
6 | {
7 | public static Item GetItemFromRef(string refName)
8 | {
9 | if (refName == null)
10 | {
11 | Debug.Log("Cannot search for a null item!");
12 | return null;
13 | }
14 | Item outItem;
15 |
16 | if (masterItemList.TryGetValue(refName, out outItem))
17 | {
18 | return outItem;
19 | }
20 | else
21 | {
22 | //Debug.Log("Item not found: " + refName);
23 | return null;
24 | }
25 | }
26 |
27 | public static Conversation FindConversation(string refName)
28 | {
29 | Conversation outConvo;
30 |
31 | if (masterConversationList.TryGetValue(refName, out outConvo))
32 | {
33 | return outConvo;
34 | }
35 | else
36 | {
37 | Debug.Log("Conversation " + refName + " not found.");
38 | return null;
39 | }
40 | }
41 |
42 | public static EffectScript GetEffectByRef(string refName)
43 | {
44 | EffectScript outEff;
45 | if (masterEffectList.TryGetValue(refName, out outEff))
46 | {
47 | return outEff;
48 | }
49 | else
50 | {
51 | Debug.Log("Effect " + refName + " not found");
52 | return null;
53 | }
54 | }
55 |
56 | public static StatusEffect FindStatusTemplateByName(string refName)
57 | {
58 | StatusEffect outSE;
59 | if (masterStatusList.TryGetValue(refName, out outSE))
60 | {
61 | return outSE;
62 | }
63 | else
64 | {
65 | if (Debug.isDebugBuild && refName != "randomdebuff") Debug.Log("Couldn't find status template for " + refName);
66 | return null;
67 | }
68 | }
69 |
70 | public static ActorTable GetSpawnTable(string tableRef)
71 | {
72 | ActorTable returnElement;
73 | if (GameMasterScript.masterSpawnTableList.TryGetValue(tableRef, out returnElement))
74 | {
75 | return returnElement;
76 | }
77 |
78 | return null;
79 | }
80 | }
--------------------------------------------------------------------------------
/Assets/ElementalAuraManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class ElementalAuraManager : MonoBehaviour {
7 |
8 | public SpriteRenderer back;
9 | public SpriteRenderer front;
10 |
11 | public DamageTypes auraType;
12 |
13 | public const int NUM_FRAMES_IN_AURA = 16;
14 | public const int NUM_AURA_ELEMENTS = 5;
15 | public bool auraInitialized;
16 | public SpriteRenderer followSpriteRenderer;
17 |
18 | void Update()
19 | {
20 | if (followSpriteRenderer == null) return;
21 |
22 | back.color = followSpriteRenderer.color;
23 | front.color = followSpriteRenderer.color;
24 | back.enabled = followSpriteRenderer.enabled;
25 | front.enabled = followSpriteRenderer.enabled;
26 |
27 | }
28 |
29 | public void StopAndDie()
30 | {
31 | auraInitialized = false;
32 | GameMasterScript.ReturnToStack(gameObject, gameObject.name.Replace("(Clone)", string.Empty));
33 | }
34 |
35 | public void UpdateSpriteOrder(int baseOrder)
36 | {
37 | back.sortingOrder = baseOrder - 1;
38 | front.sortingOrder = baseOrder + 1;
39 | }
40 |
41 | public void Initialize(DamageTypes element, SpriteRenderer followSR)
42 | {
43 | if (followSR == null) return;
44 | //if (auraInitialized) return;
45 |
46 | followSpriteRenderer = followSR;
47 | auraType = element;
48 |
49 | Animatable frontAnim = front.gameObject.GetComponent();
50 | Animatable backAnim = back.gameObject.GetComponent();
51 |
52 | for (int i = 0; i < NUM_FRAMES_IN_AURA; i++)
53 | {
54 | frontAnim.myAnimations[0].SetSpriteOnly(i, TDVisualEffects.GetElementalAuraSprite(element, true, i));
55 |
56 | backAnim.myAnimations[0].SetSpriteOnly(i, TDVisualEffects.GetElementalAuraSprite(element, false, i));
57 | }
58 |
59 | backAnim.SetAnim("Default");
60 | frontAnim.SetAnim("Default");
61 |
62 | gameObject.transform.localScale = Vector3.one;
63 | front.transform.localScale = Vector3.one;
64 | back.transform.localScale = Vector3.one;
65 |
66 | auraInitialized = true;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/Assets/SpriteFontManager.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 | using UnityEngine.UI;
6 |
7 | [System.Serializable]
8 | public class SpriteFontManager : MonoBehaviour {
9 |
10 | public TMP_SpriteAsset[] spriteFontAssets;
11 |
12 | Dictionary dictStringsToAssets;
13 |
14 | static SpriteFontManager singleton;
15 |
16 | // Use this for initialization
17 | void Awake ()
18 | {
19 | if (singleton != null && singleton != this)
20 | {
21 | return;
22 | }
23 | dictStringsToAssets = new Dictionary();
24 | for (int i = 0; i < spriteFontAssets.Length; i++)
25 | {
26 | dictStringsToAssets.Add(spriteFontAssets[i].name.ToLowerInvariant(), spriteFontAssets[i]);
27 | }
28 | DontDestroyOnLoad(this);
29 |
30 | singleton = this;
31 | }
32 |
33 | // Takes a DialogBoxScript and sets its TMPro text object's Sprite Font to the desired asset
34 | // Assets are assigned to the SpriteFontManager object in the editor
35 |
36 | // Possible assets and their sprites (0-index) are:
37 | // "HUDIcons" (Default): Timer, health, lightning bolt, Lv, boot/speed, JP, XP, gold coin
38 | // "type_icons" = Sword, fire, poison/acid, water, lightning, skull/shadow
39 | // "RingMenuSpritesheet" = flask, portal, frog, clock, nothing, bomb, bread, arrow, nothing, nothing
40 | public static void SetSpriteFontForDialogBox(DialogBoxScript dbs, string spriteFontAssetName)
41 | {
42 | if (singleton == null) return;
43 | singleton._SetSpriteFontForDialogBox(dbs, spriteFontAssetName);
44 | }
45 |
46 | void _SetSpriteFontForDialogBox(DialogBoxScript dbs, string spriteFontAssetName)
47 | {
48 | TMP_SpriteAsset retrievedAsset;
49 | if (dictStringsToAssets.TryGetValue(spriteFontAssetName.ToLowerInvariant(), out retrievedAsset))
50 | {
51 | dbs.GetDialogText().spriteAsset = retrievedAsset;
52 | }
53 | else
54 | {
55 | Debug.LogError("WARNING! Sprite font asset " + spriteFontAssetName + " does not exist! Did you add it to the SpriteFontManager object in the editor?");
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/Dialogs/XML/dialog_shara_boss1_prefight.xml:
--------------------------------------------------------------------------------
1 |
72 |
--------------------------------------------------------------------------------
/Assets/TooltipScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using TMPro;
5 |
6 | [System.Serializable]
7 | public class TooltipScript : MonoBehaviour {
8 |
9 | public const float FADE_IN_TIME = 0.18f;
10 | public const float DELAY_BEFORE_FADE = 0.32f;
11 |
12 | public float overrideFadeTime;
13 | public float overrideDelayTime;
14 |
15 | float fadeTime;
16 | float delayTime;
17 |
18 | public float timeAtEnable;
19 | public bool waitingToFade;
20 |
21 | public TextMeshProUGUI tooltipText;
22 |
23 | CanvasGroupFader cgf;
24 |
25 | // Use this for initialization
26 | void Start () {
27 | return; // 7/9/21 - Do we care about this at all?
28 |
29 | cgf = GetComponent();
30 | if (tooltipText != null)
31 | {
32 | FontManager.LocalizeMe(tooltipText, TDFonts.WHITE);
33 | }
34 | fadeTime = FADE_IN_TIME;
35 | if (overrideFadeTime != 0)
36 | {
37 | fadeTime = overrideFadeTime;
38 | }
39 | delayTime = DELAY_BEFORE_FADE;
40 | if (overrideDelayTime != 0)
41 | {
42 | delayTime = overrideDelayTime;
43 | }
44 | }
45 |
46 | public void FadeInImmediately()
47 | {
48 | if (cgf == null) return;
49 | waitingToFade = false;
50 | cgf.SetAlpha(1f);
51 | }
52 |
53 | void OnEnable ()
54 | {
55 | return; // 7/9/21 - Do we care about this at all?
56 |
57 | if (cgf == null) return;
58 |
59 | #if UNITY_SWITCH
60 | cgf.SetAlpha(1f);
61 | return;
62 | #else
63 | if (GameMasterScript.pretendSwitchEnabled)
64 | {
65 | cgf.SetAlpha(1f);
66 | return;
67 | }
68 | #endif
69 | cgf.SetAlpha(0f);
70 | timeAtEnable = Time.time;
71 | waitingToFade = true;
72 | }
73 |
74 | void Update ()
75 | {
76 | return; // 7/9/21 - Do we care about this at all?
77 |
78 | if (waitingToFade)
79 | {
80 | float pComplete = (Time.time - timeAtEnable) / delayTime;
81 | if (pComplete >= 1.0f)
82 | {
83 | waitingToFade = false;
84 | cgf.FadeIn(fadeTime);
85 | }
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/Assets/Resources/DLCResources/DLC1/Dialogs/XML/dialog_shara_preboss2_passage.xml:
--------------------------------------------------------------------------------
1 |
75 |
--------------------------------------------------------------------------------
/Assets/PlayerHUDStatsComponent.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.UI;
5 | using TMPro;
6 |
7 | public class PlayerHUDStatsComponent : MonoBehaviour {
8 |
9 | public Image playerStaminaFill;
10 | public Image playerStaminaReservedFill;
11 | public Image playerHealthFill;
12 | public Image playerEnergyFill;
13 | public Image playerEnergyReservedFill;
14 |
15 | public Image playerLimitBreakFill;
16 | public GameObject limitBreakContainer;
17 |
18 | static PlayerHUDStatsComponent singleton;
19 |
20 | private void Start()
21 | {
22 | if (singleton != null && singleton != this) return;
23 |
24 | singleton = this;
25 | playerStaminaReservedFill.fillAmount = 0f;
26 | playerEnergyReservedFill.fillAmount = 0f;
27 |
28 | limitBreakContainer.SetActive(false);
29 | }
30 |
31 | public static void ToggleLimitBreak(bool state)
32 | {
33 | singleton.limitBreakContainer.SetActive(state);
34 | }
35 |
36 | public static void SetLimitBreakAmount(float amt)
37 | {
38 | float maxFillAmount = HeroPC.PERCENT_OF_HEALTH_LIMITBREAK;
39 |
40 | maxFillAmount -= (GameMasterScript.heroPCActor.myStats.CheckStatusQuantity("xp2_dragons") * 0.05f);
41 |
42 | amt = (amt / maxFillAmount);
43 |
44 | float prevAmount = singleton.playerLimitBreakFill.fillAmount;
45 |
46 | if (amt > 1f)
47 | {
48 | amt = 1f;
49 | }
50 | singleton.playerLimitBreakFill.fillAmount = amt;
51 |
52 | if (prevAmount < 1f && amt == 1f)
53 | {
54 | GameMasterScript.heroPCActor.OnLimitBreakReached();
55 | }
56 | }
57 |
58 | public static void RefreshReservedEnergy(float energyReserved, float maxEnergy)
59 | {
60 | float percentOfMaxReserved = energyReserved / maxEnergy;
61 | singleton.playerEnergyReservedFill.fillAmount = percentOfMaxReserved;
62 | }
63 |
64 | public static void RefreshReservedStamina(float staminaReserved, float maxStamina)
65 | {
66 | float percentOfMaxReserved = staminaReserved / maxStamina;
67 | singleton.playerStaminaReservedFill.fillAmount = percentOfMaxReserved;
68 | }
69 | }
70 |
71 | public partial class UIManagerScript
72 | {
73 | public PlayerHUDStatsComponent hudPlayerStats;
74 | }
75 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_GemLeavesToGems.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using System;
5 |
6 | public class CraftingRecipe_GemLeavesToGems : CraftingRecipe {
7 |
8 | string refOfGemLeaf = "";
9 |
10 | public override bool IsRecipePossible(List
- inputItems)
11 | {
12 | dictCachedItemsToUse.Clear();
13 | int countOfGemLeaves = 0;
14 | int gemLeavesRemaining = numIngredients;
15 | refOfGemLeaf = "";
16 |
17 | foreach (Item itm in inputItems)
18 | {
19 | if (itm.itemType != ItemTypes.CONSUMABLE) continue;
20 |
21 | if (string.IsNullOrEmpty(refOfGemLeaf))
22 | {
23 | if (itm.actorRefName.Contains("cashcrop"))
24 | {
25 | refOfGemLeaf = itm.actorRefName; // we'll use this gem for the recipe
26 | }
27 | else
28 | {
29 | continue;
30 | }
31 | }
32 | else
33 | {
34 | if (itm.actorRefName != refOfGemLeaf) continue; // all gem must be the same
35 | }
36 |
37 | countOfGemLeaves += itm.GetQuantity();
38 |
39 | if (itm.GetQuantity() <= gemLeavesRemaining)
40 | {
41 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
42 | }
43 | else
44 | {
45 | dictCachedItemsToUse.Add(itm, gemLeavesRemaining);
46 | }
47 |
48 | gemLeavesRemaining -= itm.GetQuantity();
49 |
50 | if (countOfGemLeaves >= numIngredients)
51 | {
52 | return true;
53 | }
54 | }
55 |
56 | return false;
57 | }
58 |
59 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
60 | {
61 | int gemLeafLevel = Int32.Parse(refOfGemLeaf.Substring(refOfGemLeaf.Length - 1, 1));
62 | string gemRef = "item_gem" + gemLeafLevel;
63 |
64 | Consumable gem = LootGeneratorScript.CreateItemFromTemplateRef(gemRef, 1.0f, 0f, false) as Consumable;
65 |
66 | List
- returnItems = new List
- () { gem };
67 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
68 | return returnItems;
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/Assets/GameMasterScript_ApplicationManagement.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 | using UnityEngine.SceneManagement;
5 | using System;
6 | using Rewired;
7 |
8 | public partial class GameMasterScript
9 | {
10 | public void SaveAndQuitToTitle()
11 | {
12 | // Have to carefully manage Switch resources due to low RAM
13 | #if UNITY_SWITCH
14 | Switch_SaveDataHandler.FlushBytesLoadedAsync();
15 | MapMasterScript.ReleaseAllTextures();
16 | GC.Collect();
17 | #endif
18 | SaveTheGame(autoSave: false);
19 |
20 | StartCoroutine(IWaitForSaveCompletionAndThenQuitToTitle());
21 | }
22 |
23 | IEnumerator IWaitForSaveCompletionAndThenQuitToTitle()
24 | {
25 | while (CurrentSaveGameState != SaveGameState.NOT_SAVING)
26 | {
27 | yield return null;
28 | }
29 | ResetAllVariablesToGameLoad();
30 | GameStartData.CurrentLoadState = LoadStates.BACK_TO_TITLE;
31 | applicationQuittingOrChangingScenes = true;
32 | LoadMainScene();
33 | }
34 |
35 | public void SaveAndQuit()
36 | {
37 | SaveTheGame(autoSave: false);
38 |
39 | StartCoroutine(IWaitForSaveCompletionAndThenCloseApplication());
40 | applicationQuittingOrChangingScenes = true;
41 | }
42 |
43 | IEnumerator IWaitForSaveCompletionAndThenCloseApplication()
44 | {
45 | while (CurrentSaveGameState != SaveGameState.NOT_SAVING)
46 | {
47 | yield return null;
48 | }
49 | Application.Quit();
50 | }
51 |
52 | void OnApplicationFocus(bool hasFocus)
53 | {
54 | if (hasFocus)
55 | {
56 | tdHasFocus = true;
57 | TDInputHandler.IgnoreNextMouseAction();
58 | MusicManagerScript.appHasFocus = true;
59 | //Debug.Log("Has focus!");
60 | }
61 | else
62 | {
63 | tdHasFocus = false;
64 | MusicManagerScript.appHasFocus = false;
65 | //Debug.Log("No focus.");
66 | }
67 | }
68 |
69 | void OnDestroy()
70 | {
71 |
72 | #if UNITY_SWITCH
73 | ReInput.ControllerConnectedEvent -= OnControllerConnected;
74 | #else
75 | if (cMapper != null)
76 | {
77 | cMapper.restoreDefaultsDelegate -= OnRestoreDefaults;
78 | }
79 | #endif
80 | }
81 | }
--------------------------------------------------------------------------------
/Assets/ChampionMod.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class ChampionMod
6 | {
7 | public string displayName;
8 | public string refName;
9 | public string accessoryRef;
10 | public float challengeValue;
11 | public float maxChallengeValue;
12 | public int exclusionGroup;
13 | public bool newGamePlusOnly;
14 | public bool displayNameOnHover;
15 | public List modPowers;
16 |
17 | public DamageTypes elementalAura;
18 |
19 | public bool shadowKingOnly;
20 | public bool memoryKingOnly;
21 |
22 | public Dictionary metaData;
23 |
24 | public static List modsForGodRealm = new List()
25 | {
26 | "monmod_hauler",
27 | "monmod_banisher", // stronger ver?
28 | "monmod_steeltoe", // stronger ver?
29 | "monmod_heavy2",
30 | "monmod_hurricane",
31 | "monmod_barrier",
32 | "monmod_illusionist", // stronger ver?
33 | "monmod_harrier",
34 | "monmod_blinking",
35 | "monmod_leadtouched",
36 | "monmod_regenerating2",
37 | "monmod_resbreaker",
38 | "monmod_frogmaster" // stronger ver?
39 | };
40 |
41 | // you can only have one of these
42 | public static List godMods = new List()
43 | {
44 | "monmod_god_shadow",
45 | "monmod_god_fire",
46 | "monmod_god_water",
47 | "monmod_god_physical",
48 | "monmod_god_poison",
49 | "monmod_god_lightning"
50 | };
51 |
52 |
53 | public ChampionMod()
54 | {
55 | metaData = new Dictionary();
56 | modPowers = new List();
57 | accessoryRef = null;
58 | maxChallengeValue = 99f;
59 | shadowKingOnly = false;
60 | displayNameOnHover = true;
61 | newGamePlusOnly = false;
62 | memoryKingOnly = false;
63 | elementalAura = DamageTypes.COUNT; // no aura by default
64 | }
65 |
66 | ///
67 | /// Returns TRUE if this mod is for 'god' monsters only
68 | ///
69 | ///
70 | public bool CheckGodsOnly()
71 | {
72 | int value;
73 | if (metaData.TryGetValue("godsonly", out value))
74 | {
75 | return value == 1;
76 | }
77 |
78 | return false;
79 | }
80 | }
--------------------------------------------------------------------------------
/Assets/TextEffects.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using System.Collections;
3 | using TMPro;
4 | using UnityEngine.UI;
5 |
6 | [System.Serializable]
7 | public class TextEffects : MonoBehaviour {
8 |
9 | public float timeToFadeIn;
10 | float timeAtSpawn;
11 | bool fadingIn;
12 | bool started = false;
13 | CanvasRenderer myCanvasRenderer;
14 | float percentComplete;
15 |
16 | float timeFlashStart;
17 | public bool textFlash;
18 | public float flashCycleTime;
19 | bool flashDirection; // true is fading IN
20 |
21 | TextMeshProUGUI myText;
22 |
23 | // Use this for initialization
24 | void Start () {
25 | myCanvasRenderer = GetComponent();
26 | myText = GetComponent();
27 | myCanvasRenderer.SetAlpha(0.0f);
28 | timeAtSpawn = Time.fixedTime;
29 | started = true;
30 | fadingIn = true;
31 | if (textFlash)
32 | {
33 | flashDirection = false;
34 | timeFlashStart = Time.fixedTime;
35 | }
36 | }
37 |
38 | // Update is called once per frame
39 | void Update ()
40 | {
41 | if (started && textFlash && !fadingIn)
42 | {
43 | percentComplete = (Time.fixedTime - timeFlashStart) / flashCycleTime;
44 | if (flashDirection)
45 | {
46 | myCanvasRenderer.SetAlpha(percentComplete);
47 | }
48 | else
49 | {
50 | myCanvasRenderer.SetAlpha(1f - percentComplete);
51 | }
52 |
53 | if (percentComplete >= 1.0f)
54 | {
55 | percentComplete = 0f;
56 | flashDirection = !flashDirection;
57 | timeFlashStart = Time.fixedTime;
58 | }
59 |
60 | }
61 |
62 | if (started && fadingIn)
63 | {
64 | percentComplete = (Time.fixedTime - timeAtSpawn) / timeToFadeIn;
65 | myCanvasRenderer.SetAlpha(percentComplete);
66 | if (percentComplete >= 1.0f)
67 | {
68 | fadingIn = false;
69 | }
70 |
71 | if (myText != null)
72 | {
73 | CanvasRenderer[] renderersOnMe = myText.GetComponentsInChildren();
74 | foreach (var cr in renderersOnMe)
75 | {
76 | cr.SetAlpha(percentComplete);
77 | }
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_ThreeScrollsAndGemToScroll.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_ThreeScrollsAndGemToScroll : CraftingRecipe {
6 |
7 | public override bool IsRecipePossible(List
- inputItems)
8 | {
9 | dictCachedItemsToUse.Clear();
10 |
11 | int countOfScrolls = 0;
12 | int scrollsRemaining = 3;
13 | Item gemUsed = null;
14 |
15 | foreach (Item itm in inputItems)
16 | {
17 | if (itm.CheckTag(ItemFilters.GEM))
18 | {
19 | if (gemUsed != null)
20 | {
21 | if (itm.challengeValue > highestCVOfInputItems)
22 | {
23 | gemUsed = itm;
24 | highestCVOfInputItems = itm.challengeValue;
25 | }
26 | }
27 | else
28 | {
29 | gemUsed = itm;
30 | }
31 | }
32 |
33 | if (itm.actorRefName.Contains("scroll_"))
34 | {
35 | countOfScrolls += itm.GetQuantity();
36 |
37 | if (itm.GetQuantity() <= scrollsRemaining)
38 | {
39 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
40 | }
41 | else
42 | {
43 | dictCachedItemsToUse.Add(itm, scrollsRemaining);
44 | }
45 |
46 | scrollsRemaining -= itm.GetQuantity();
47 | }
48 |
49 | if (countOfScrolls == 3 && gemUsed != null)
50 | {
51 | dictCachedItemsToUse.Add(gemUsed, 1);
52 | return true;
53 | }
54 |
55 | }
56 |
57 | return false;
58 | }
59 |
60 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
61 | {
62 | Consumable scrollTemplate = GetPossibleItemRef("scrolls", highestCVOfInputItems - 0.3f, highestCVOfInputItems) as Consumable;
63 | Consumable scrollToMake = new Consumable();
64 | scrollToMake.CopyFromItem(scrollTemplate);
65 | scrollToMake.SetUniqueIDAndAddToDict();
66 |
67 | List
- returnItems = new List
- () { scrollToMake };
68 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
69 | return returnItems;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_PotionsToElixir.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_PotionsToElixir : CraftingRecipe {
6 |
7 | List requiredPotions = new List()
8 | {
9 | "potion_healing3",
10 | "potion_stamina3",
11 | "potion_energy3"
12 | };
13 |
14 | public override bool IsRecipePossible(List
- inputItems)
15 | {
16 | Dictionary potionsRemaining = new Dictionary()
17 | {
18 | { "potion_healing3", 2 },
19 | { "potion_stamina3", 2 },
20 | { "potion_energy3", 2 }
21 | };
22 |
23 | Dictionary countOfPotions = new Dictionary()
24 | {
25 | { "potion_healing3", 0 },
26 | { "potion_stamina3", 0 },
27 | { "potion_energy3", 0 }
28 | };
29 |
30 |
31 | dictCachedItemsToUse.Clear();
32 |
33 | foreach (Item itm in inputItems)
34 | {
35 | if (itm.itemType != ItemTypes.CONSUMABLE) continue;
36 |
37 | if (!requiredPotions.Contains(itm.actorRefName)) continue;
38 |
39 | if (potionsRemaining[itm.actorRefName] == 0) continue;
40 |
41 | countOfPotions[itm.actorRefName] += itm.GetQuantity();
42 |
43 | if (itm.GetQuantity() <= potionsRemaining[itm.actorRefName])
44 | {
45 | dictCachedItemsToUse.Add(itm, itm.GetQuantity());
46 | }
47 | else
48 | {
49 | dictCachedItemsToUse.Add(itm, potionsRemaining[itm.actorRefName]);
50 | }
51 |
52 | potionsRemaining[itm.actorRefName] -= itm.GetQuantity();
53 | }
54 |
55 |
56 | foreach(string potion in potionsRemaining.Keys)
57 | {
58 | if (potionsRemaining[potion] > 0)
59 | {
60 | return false;
61 | }
62 | }
63 |
64 | return true;
65 | }
66 |
67 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
68 | {
69 | Consumable potion = LootGeneratorScript.CreateItemFromTemplateRef("potion_elixir", 1.0f, 0f, false) as Consumable;
70 |
71 | List
- returnItems = new List
- () { potion };
72 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
73 | return returnItems;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Assets/Standard Assets/Editor/ImageEffects/CreaseShadingEditor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using UnityEditor;
3 | using UnityEditor.AnimatedValues;
4 | using UnityEngine;
5 |
6 | namespace UnityStandardAssets.ImageEffects
7 | {
8 | [CustomEditor(typeof(CreaseShading))]
9 | class CreaseShadingEditor : Editor {
10 | SerializedObject serObj;
11 |
12 | SerializedProperty m_intensity;
13 | SerializedProperty m_softness;
14 | SerializedProperty m_spread;
15 |
16 | AnimBool m_showSoftnessWarning = new AnimBool();
17 | AnimBool m_showSpreadWarning = new AnimBool();
18 |
19 | private bool softnessWarningValue { get { return m_softness.intValue > 4; } }
20 | private bool spreadWarningValue { get { return m_spread.floatValue > 4; } }
21 |
22 | void OnEnable () {
23 | serObj = new SerializedObject (target);
24 |
25 | m_intensity = serObj.FindProperty("intensity");
26 | m_softness = serObj.FindProperty("softness");
27 | m_spread = serObj.FindProperty("spread");
28 |
29 | m_showSoftnessWarning.valueChanged.AddListener(Repaint);
30 | m_showSpreadWarning.valueChanged.AddListener(Repaint);
31 |
32 | m_showSoftnessWarning.value = softnessWarningValue;
33 | m_showSpreadWarning.value = spreadWarningValue;
34 | }
35 |
36 | public override void OnInspectorGUI () {
37 | serObj.Update ();
38 |
39 | EditorGUILayout.Slider(m_intensity, -5.0f, 5.0f, new GUIContent("Intensity"));
40 |
41 | EditorGUILayout.IntSlider(m_softness, 0, 15, new GUIContent("Softness"));
42 | m_showSoftnessWarning.target = softnessWarningValue;
43 | if (EditorGUILayout.BeginFadeGroup(m_showSoftnessWarning.faded))
44 | {
45 | EditorGUILayout.HelpBox("High Softness value might reduce performance.", MessageType.Warning, false);
46 | }
47 | EditorGUILayout.EndFadeGroup();
48 |
49 | EditorGUILayout.Slider(m_spread, 0.0f, 50.0f, new GUIContent("Spread"));
50 | m_showSpreadWarning.target = spreadWarningValue;
51 | if (EditorGUILayout.BeginFadeGroup(m_showSpreadWarning.faded))
52 | {
53 | EditorGUILayout.HelpBox("High Spread value might introduce visual artifacts.", MessageType.Warning, false);
54 | }
55 | EditorGUILayout.EndFadeGroup();
56 |
57 | serObj.ApplyModifiedProperties ();
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Assets/TDScripts/CraftingScripts/CraftingRecipe_TwoAccessoriesAndGemToAccessory.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | public class CraftingRecipe_TwoAccessoriesAndGemToAccessory : CraftingRecipe {
6 |
7 | Item gemToUse;
8 |
9 | public override bool IsRecipePossible(List
- inputItems)
10 | {
11 | dictCachedItemsToUse.Clear();
12 | itemRefsUsed.Clear();
13 | int countOfAccessories = 0;
14 | highestCVOfInputItems = 1.0f;
15 |
16 | foreach (Item itm in inputItems)
17 | {
18 | if (itm.CheckTag((int)ItemFilters.GEM))
19 | {
20 | if (gemToUse == null)
21 | {
22 | gemToUse = itm;
23 | }
24 | else
25 | {
26 | if (gemToUse.challengeValue < itm.challengeValue)
27 | {
28 | gemToUse = itm;
29 | }
30 | }
31 | }
32 |
33 | else if (itm.itemType == ItemTypes.ACCESSORY)
34 | {
35 | Accessory acc = itm as Accessory;
36 | if (acc.rarity != Rarity.COMMON) continue;
37 | countOfAccessories++;
38 | dictCachedItemsToUse.Add(itm, 1);
39 | itemRefsUsed.Add(itm.actorRefName);
40 | if (itm.challengeValue > highestCVOfInputItems)
41 | {
42 | highestCVOfInputItems = itm.challengeValue;
43 | }
44 | }
45 |
46 | if (countOfAccessories == 2 && gemToUse != null)
47 | {
48 | dictCachedItemsToUse.Add(gemToUse, 1);
49 | return true;
50 | }
51 |
52 | }
53 |
54 | return false;
55 | }
56 |
57 | public override List
- MakeRecipe(List
- inputItems, out List
- unusedInputItems)
58 | {
59 | highestCVOfInputItems = (highestCVOfInputItems + gemToUse.challengeValue) / 2f;
60 | Accessory lookupTemplate = GetPossibleItemRef("accessories", highestCVOfInputItems - 0.2f, highestCVOfInputItems) as Accessory;
61 |
62 | Accessory accToMake = new Accessory();
63 | accToMake.CopyFromItem(lookupTemplate);
64 | accToMake.SetUniqueIDAndAddToDict();
65 | List
- returnItems = new List
- () { accToMake };
66 | unusedInputItems = RemoveUsedItemsFromList(inputItems);
67 | return returnItems;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/Assets/AuraAnimateScript.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | [System.Serializable]
6 | public class AuraAnimateScript : MonoBehaviour {
7 |
8 | SpriteRenderer sr;
9 | public float cycleTime;
10 | public float minOpacity;
11 | public float maxOpacity;
12 | float timeAtCycleStart;
13 | float valueRange;
14 | Color myColor;
15 | bool opacityUp;
16 |
17 | SpriteRenderer parentSR;
18 | private bool foundParentSR;
19 | private int attemptsToFindParentSR = 0;
20 |
21 | // Use this for initialization
22 | void Start () {
23 | sr = GetComponent();
24 | timeAtCycleStart = Time.time;
25 | myColor = sr.color;
26 | myColor.a = minOpacity;
27 | opacityUp = true;
28 | valueRange = maxOpacity - minOpacity;
29 | }
30 |
31 | private void OnEnable()
32 | {
33 | parentSR = null;
34 | foundParentSR = false;
35 | attemptsToFindParentSR = 0;
36 | if (transform.parent != null)
37 | {
38 | parentSR = transform.parent.GetComponent();
39 | if (parentSR != null)
40 | {
41 | foundParentSR = true;
42 | }
43 | }
44 | }
45 |
46 | // Update is called once per frame
47 | void Update ()
48 | {
49 | // We're trying to connect to our parent SR a few times, because maybe there was a delay between initial OnEnable() and connecting this aura to a parent object
50 | if (!foundParentSR && attemptsToFindParentSR < 3)
51 | {
52 | OnEnable();
53 | attemptsToFindParentSR++;
54 | }
55 |
56 | if (foundParentSR)
57 | {
58 | // We want the aura to be directly underneath us at all times, offset by -1 so we draw on top.
59 | sr.sortingOrder = parentSR.sortingOrder - 1;
60 | }
61 |
62 |
63 | float percentComplete = (Time.time - timeAtCycleStart) / cycleTime;
64 | bool finished = false;
65 | if (percentComplete >= 1.0f)
66 | {
67 | percentComplete = 1.0f;
68 | finished = true;
69 | }
70 |
71 | float opacityValue = Mathfx.Sinerp(0, valueRange, percentComplete);
72 |
73 | if (opacityUp)
74 | {
75 | myColor.a = minOpacity + opacityValue;
76 | }
77 | else
78 | {
79 | myColor.a = maxOpacity - opacityValue;
80 | }
81 |
82 | sr.color = myColor;
83 |
84 | if (finished)
85 | {
86 | timeAtCycleStart = Time.time;
87 | opacityUp = !opacityUp;
88 | }
89 |
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/Assets/UIManager.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1000012643686876}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1000012643686876
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4000010273995790}
22 | - component: {fileID: 114000014036831100}
23 | m_Layer: 0
24 | m_Name: UIManager
25 | m_TagString: Untagged
26 | m_Icon: {fileID: 0}
27 | m_NavMeshLayer: 0
28 | m_StaticEditorFlags: 0
29 | m_IsActive: 1
30 | --- !u!4 &4000010273995790
31 | Transform:
32 | m_ObjectHideFlags: 1
33 | m_PrefabParentObject: {fileID: 0}
34 | m_PrefabInternal: {fileID: 100100000}
35 | m_GameObject: {fileID: 1000012643686876}
36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
37 | m_LocalPosition: {x: 12.395134, y: 4.333289, z: -1}
38 | m_LocalScale: {x: 1, y: 1, z: 1}
39 | m_Children: []
40 | m_Father: {fileID: 0}
41 | m_RootOrder: 0
42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
43 | --- !u!114 &114000014036831100
44 | MonoBehaviour:
45 | m_ObjectHideFlags: 1
46 | m_PrefabParentObject: {fileID: 0}
47 | m_PrefabInternal: {fileID: 100100000}
48 | m_GameObject: {fileID: 1000012643686876}
49 | m_Enabled: 1
50 | m_EditorHideFlags: 0
51 | m_Script: {fileID: 11500000, guid: e3cf4bc1e9238e5498f3e09183c4119b, type: 3}
52 | m_Name:
53 | m_EditorClassIdentifier:
54 | dialogWaitTime: 0
55 | typewriterTextSpeed: 0
56 | charactersPerTypewriterTick: 0
57 | typewriterCharsToPlaySound: 0
58 | isMouseOverUI: 0
59 | isMouseOverGameWorld: 0
60 | delayToFadeCombatLog: 0
61 | combatLogFadeOutTime: 0
62 | maxCombatLogAlpha: 0
63 | deltaTime: 0
64 | renderColumns: 24
65 | renderRows: 24
66 | editString: '> ...'
67 | uiDialogMenuCursor: {fileID: 0}
68 | cursorAudioComponent: {fileID: 0}
69 | uiDialogMenuCursorImage: {fileID: 0}
70 | draggingItemButtonIndex: 0
71 | draggingSkillButtonIndex: 0
72 | mouseCursorImageAsset: {fileID: 4900000, guid: d80b784de25057f49afceb4041b7e83e,
73 | type: 3}
74 | mainMouseCursor: {fileID: 0}
75 | targetingMouseCursor: {fileID: 0}
76 | lastPhysicalMousePosition: {x: 0, y: 0}
77 | framesSinceDragUp: 0
78 | dialogBoxTextText: {fileID: 0}
79 |
--------------------------------------------------------------------------------
/Assets/DLCManager.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1483647772552126}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1483647772552126
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4275380963116610}
22 | - component: {fileID: 114923694483449272}
23 | m_Layer: 0
24 | m_Name: DLCManager
25 | m_TagString: Untagged
26 | m_Icon: {fileID: 0}
27 | m_NavMeshLayer: 0
28 | m_StaticEditorFlags: 0
29 | m_IsActive: 1
30 | --- !u!4 &4275380963116610
31 | Transform:
32 | m_ObjectHideFlags: 1
33 | m_PrefabParentObject: {fileID: 0}
34 | m_PrefabInternal: {fileID: 100100000}
35 | m_GameObject: {fileID: 1483647772552126}
36 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
37 | m_LocalPosition: {x: 0, y: 0, z: 0}
38 | m_LocalScale: {x: 1, y: 1, z: 1}
39 | m_Children: []
40 | m_Father: {fileID: 0}
41 | m_RootOrder: 0
42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
43 | --- !u!114 &114923694483449272
44 | MonoBehaviour:
45 | m_ObjectHideFlags: 1
46 | m_PrefabParentObject: {fileID: 0}
47 | m_PrefabInternal: {fileID: 100100000}
48 | m_GameObject: {fileID: 1483647772552126}
49 | m_Enabled: 1
50 | m_EditorHideFlags: 0
51 | m_Script: {fileID: 11500000, guid: e966039abf2a98f4b8bedc3d32590c7e, type: 3}
52 | m_Name:
53 | m_EditorClassIdentifier:
54 | considerAllDLCInstalled: 1
55 | packageDefinitions:
56 | - dlcFiles:
57 | - {fileID: 4900000, guid: f873f13d1f1d6f841953f51a049d5e55, type: 3}
58 | - {fileID: 4900000, guid: c2005c039afe62c44b98e8b4a52f8ac3, type: 3}
59 | - {fileID: 4900000, guid: 41f3d0337d1de4147ba8914159a15b0d, type: 3}
60 | - {fileID: 4900000, guid: eaddc40941d49024eb802776681fce73, type: 3}
61 | - {fileID: 4900000, guid: 18efe801ce2ffc941901a53a2a6684b6, type: 3}
62 | - {fileID: 4900000, guid: 55d545c5a85cddb40856b92db62fa54a, type: 3}
63 | - {fileID: 4900000, guid: 56a1f08c77926184589d4f457ea22d50, type: 3}
64 | - {fileID: 4900000, guid: 0b51679dc1b968c4bb4c1fa628f9c0e0, type: 3}
65 | - {fileID: 4900000, guid: 56513e65c67836c4e95993ea53a159f8, type: 3}
66 | - {fileID: 4900000, guid: ac615b9aaac5f8b4e97f58a9e1cfa103, type: 3}
67 | whichDLC: 0
68 |
--------------------------------------------------------------------------------
/Assets/Resources/SpriteEffects/AfterImageCreator.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1001 &100100000
4 | Prefab:
5 | m_ObjectHideFlags: 1
6 | serializedVersion: 2
7 | m_Modification:
8 | m_TransformParent: {fileID: 0}
9 | m_Modifications: []
10 | m_RemovedComponents: []
11 | m_ParentPrefab: {fileID: 0}
12 | m_RootGameObject: {fileID: 1502093903804372}
13 | m_IsPrefabParent: 1
14 | --- !u!1 &1502093903804372
15 | GameObject:
16 | m_ObjectHideFlags: 0
17 | m_PrefabParentObject: {fileID: 0}
18 | m_PrefabInternal: {fileID: 100100000}
19 | serializedVersion: 5
20 | m_Component:
21 | - component: {fileID: 4709806912212470}
22 | - component: {fileID: 114613804480312280}
23 | - component: {fileID: 114141717964184510}
24 | m_Layer: 0
25 | m_Name: AfterImageCreator
26 | m_TagString: Untagged
27 | m_Icon: {fileID: 0}
28 | m_NavMeshLayer: 0
29 | m_StaticEditorFlags: 0
30 | m_IsActive: 1
31 | --- !u!4 &4709806912212470
32 | Transform:
33 | m_ObjectHideFlags: 1
34 | m_PrefabParentObject: {fileID: 0}
35 | m_PrefabInternal: {fileID: 100100000}
36 | m_GameObject: {fileID: 1502093903804372}
37 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
38 | m_LocalPosition: {x: 0, y: 0, z: 0}
39 | m_LocalScale: {x: 1, y: 1, z: 1}
40 | m_Children: []
41 | m_Father: {fileID: 0}
42 | m_RootOrder: 0
43 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
44 | --- !u!114 &114141717964184510
45 | MonoBehaviour:
46 | m_ObjectHideFlags: 1
47 | m_PrefabParentObject: {fileID: 0}
48 | m_PrefabInternal: {fileID: 100100000}
49 | m_GameObject: {fileID: 1502093903804372}
50 | m_Enabled: 1
51 | m_EditorHideFlags: 0
52 | m_Script: {fileID: 11500000, guid: 38e5f8a0fae7a4945a2eee39c62daf62, type: 3}
53 | m_Name:
54 | m_EditorClassIdentifier:
55 | useForPoolingOnly: 1
56 | refName: AfterImageCreator
57 | onDeathCreateSpriteEffect:
58 | spriteParent: {fileID: 0}
59 | followObject: {fileID: 0}
60 | onlyExtDestroy: 0
61 | animInitialized: 0
62 | offset: {x: 0, y: 0}
63 | baseRotation: 0
64 | randomColor: 0
65 | stackToTargetLocation: 0
66 | --- !u!114 &114613804480312280
67 | MonoBehaviour:
68 | m_ObjectHideFlags: 1
69 | m_PrefabParentObject: {fileID: 0}
70 | m_PrefabInternal: {fileID: 100100000}
71 | m_GameObject: {fileID: 1502093903804372}
72 | m_Enabled: 1
73 | m_EditorHideFlags: 0
74 | m_Script: {fileID: 11500000, guid: 0833ad616f6514c47aa635a88e0fdbe5, type: 3}
75 | m_Name:
76 | m_EditorClassIdentifier:
77 | imageFadeTime: 0.33
78 | mySpriteEffect: {fileID: 114141717964184510}
79 |
--------------------------------------------------------------------------------