diff --git a/Global.gd b/Global.gd index 49612f4..fa70639 100644 --- a/Global.gd +++ b/Global.gd @@ -18,7 +18,7 @@ var bossSelectionPath: String = "/root/@Control@14/UI/BossFights" var globalDamage : int = 0 var globalDamagePerClick : int = 1 var globalDamagePerSec : int = 1 -var globalDamageMultiplier: int = 1 +var globalDamageMultiplier: float = 1.0 ##Member 1 ##Stats diff --git a/MemberDatabase/memberData.json b/MemberDatabase/memberData.json index ee569b2..6f1cab7 100644 --- a/MemberDatabase/memberData.json +++ b/MemberDatabase/memberData.json @@ -1,592 +1,592 @@ { - "members": [ - { - "name": "Squire", - "description": "Someone who does things for someone else, not very impressive.", - "perSec": 1, - "clickAdd": 1, - "scoreMultiplier": 1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Squire.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Archer", - "description": "Better at accurate clicks than consistent damage", - "perSec": 1, - "clickAdd": 20, - "scoreMultiplier": 1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Archer.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Mage", - "description": "A good mix of DPS and click power", - "perSec": 10, - "clickAdd": 10, - "scoreMultiplier": 1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Mage.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Warrior", - "description": "Strong and brave, with high attack power", - "perSec": 15, - "clickAdd": 15, - "scoreMultiplier": 1.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Warrior.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Rogue", - "description": "Quick and stealthy, with a high critical hit chance", - "perSec": 12, - "clickAdd": 18, - "scoreMultiplier": 1.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Rogue.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Priest", - "description": "Healer with powerful restorative abilities", - "perSec": 8, - "clickAdd": 8, - "scoreMultiplier": 1.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Priest.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Paladin", - "description": "Holy warrior with balanced stats", - "perSec": 11, - "clickAdd": 11, - "scoreMultiplier": 1.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Paladin.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Hunter", - "description": "Ranged attacker with high agility", - "perSec": 13, - "clickAdd": 13, - "scoreMultiplier": 1.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Hunter.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Bard", - "description": "Support character with buffs and debuffs", - "perSec": 9, - "clickAdd": 9, - "scoreMultiplier": 1.3, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Bard.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Monk", - "description": "Martial artist with high dodge and attack speed", - "perSec": 14, - "clickAdd": 14, - "scoreMultiplier": 1.3, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Monk.png", - "tier": 1, - "rarity": "Rarity.COMMON" - }, - { - "name": "Necromancer", - "description": "Master of dark magic and summoner of undead", - "perSec": 16, - "clickAdd": 16, - "scoreMultiplier": 1.4, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Necromancer.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Samurai", - "description": "Warrior with high precision and honor", - "perSec": 18, - "clickAdd": 18, - "scoreMultiplier": 1.4, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Samurai.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Elementalist", - "description": "Mage with control over the elements", - "perSec": 17, - "clickAdd": 17, - "scoreMultiplier": 1.4, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Elementalist.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Druid", - "description": "Nature guardian with healing and summoning abilities", - "perSec": 19, - "clickAdd": 19, - "scoreMultiplier": 1.5, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Druid.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Sorcerer", - "description": "Powerful spellcaster with high damage", - "perSec": 20, - "clickAdd": 20, - "scoreMultiplier": 1.5, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Sorcerer.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Assassin", - "description": "Deadly and stealthy killer", - "perSec": 21, - "clickAdd": 21, - "scoreMultiplier": 1.5, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Assassin.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Berserker", - "description": "Fierce warrior with high attack speed", - "perSec": 22, - "clickAdd": 22, - "scoreMultiplier": 1.6, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Berserker.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Summoner", - "description": "Can summon powerful creatures to fight", - "perSec": 23, - "clickAdd": 23, - "scoreMultiplier": 1.6, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Summoner.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Illusionist", - "description": "Master of illusion and trickery", - "perSec": 24, - "clickAdd": 24, - "scoreMultiplier": 1.6, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Illusionist.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Gladiator", - "description": "Fearless fighter with high defense", - "perSec": 25, - "clickAdd": 25, - "scoreMultiplier": 1.6, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Gladiator.png", - "tier": 2, - "rarity": "Rarity.UNCOMMON" - }, - { - "name": "Warlord", - "description": "Leader with commanding presence", - "perSec": 26, - "clickAdd": 26, - "scoreMultiplier": 1.7, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Warlord.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Mystic", - "description": "Enchanter with mystical powers", - "perSec": 27, - "clickAdd": 27, - "scoreMultiplier": 1.7, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Mystic.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Shaman", - "description": "Spiritual guide with healing and offensive spells", - "perSec": 28, - "clickAdd": 28, - "scoreMultiplier": 1.7, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Shaman.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Warlock", - "description": "Dark sorcerer with powerful curses", - "perSec": 29, - "clickAdd": 29, - "scoreMultiplier": 1.7, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Warlock.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Barbarian", - "description": "Brutal warrior with immense strength", - "perSec": 30, - "clickAdd": 30, - "scoreMultiplier": 1.8, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Barbarian.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Spellblade", - "description": "Warrior with enchanted blades", - "perSec": 31, - "clickAdd": 31, - "scoreMultiplier": 1.8, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Spellblade.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Runesmith", - "description": "Artisan with knowledge of magical runes", - "perSec": 32, - "clickAdd": 32, - "scoreMultiplier": 1.8, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Runesmith.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Templar", - "description": "Holy warrior with divine protection", - "perSec": 33, - "clickAdd": 33, - "scoreMultiplier": 1.8, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Templar.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Demon Hunter", - "description": "Hunter specialized in slaying demons", - "perSec": 34, - "clickAdd": 34, - "scoreMultiplier": 1.8, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Demon_Hunter.png", - "tier": 3, - "rarity": "Rarity.RARE" - }, - { - "name": "Chronomancer", - "description": "Mage with control over time", - "perSec": 35, - "clickAdd": 35, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Chronomancer.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Phoenix Knight", - "description": "Knight reborn from the ashes", - "perSec": 36, - "clickAdd": 36, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Phoenix_Knight.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Shadowblade", - "description": "Rogue with mastery over shadows", - "perSec": 37, - "clickAdd": 37, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Shadowblade.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Starcaller", - "description": "Mage with power to call forth stars", - "perSec": 38, - "clickAdd": 38, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Starcaller.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Lich King", - "description": "Undead sorcerer with dark powers", - "perSec": 39, - "clickAdd": 39, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Lich_King.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Beastmaster", - "description": "Warrior with control over beasts", - "perSec": 40, - "clickAdd": 40, - "scoreMultiplier": 1.9, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Beastmaster.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Archmage", - "description": "Supreme master of magic", - "perSec": 41, - "clickAdd": 41, - "scoreMultiplier": 2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Archmage.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Witch Hunter", - "description": "Hunter specialized in hunting witches", - "perSec": 42, - "clickAdd": 42, - "scoreMultiplier": 2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Witch_Hunter.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Nyx the Shadowcaster", - "description": "Sorceress with control over shadows", - "perSec": 43, - "clickAdd": 43, - "scoreMultiplier": 2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Nyx_the_Shadowcaster.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Cedric the Valiant", - "description": "Knight with unmatched valor", - "perSec": 44, - "clickAdd": 44, - "scoreMultiplier": 2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Cedric_the_Valiant.png", - "tier": 4, - "rarity": "Rarity.SUPERRARE" - }, - { - "name": "Raven the Silent", - "description": "Stealthy assassin with deadly skills", - "perSec": 45, - "clickAdd": 45, - "scoreMultiplier": 2.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Raven_the_Silent.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Zephyr the Swift", - "description": "Fast and agile warrior", - "perSec": 46, - "clickAdd": 46, - "scoreMultiplier": 2.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Zephyr_the_Swift.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Thorn the Protector", - "description": "Guardian with high defense", - "perSec": 47, - "clickAdd": 47, - "scoreMultiplier": 2.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Thorn_the_Protector.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Inferno the Flamebringer", - "description": "Mage with control over fire", - "perSec": 48, - "clickAdd": 48, - "scoreMultiplier": 2.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Inferno_the_Flamebringer.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Eclipse the Shadowmaster", - "description": "Sorcerer with mastery over darkness", - "perSec": 49, - "clickAdd": 49, - "scoreMultiplier": 2.1, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Eclipse_the_Shadowmaster.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Avalanche the Frost Giant", - "description": "Giant with control over ice", - "perSec": 50, - "clickAdd": 50, - "scoreMultiplier": 2.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Avalanche_the_Frost_Giant.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Storm the Thunderlord", - "description": "Lord with control over storms", - "perSec": 51, - "clickAdd": 51, - "scoreMultiplier": 2.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Storm_the_Thunderlord.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Luna the Moon Sorceress", - "description": "Sorceress with power over the moon", - "perSec": 52, - "clickAdd": 52, - "scoreMultiplier": 2.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Luna_the_Moon_Sorceress.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Drake the Dragon Knight", - "description": "Knight with dragon-like powers", - "perSec": 53, - "clickAdd": 53, - "scoreMultiplier": 2.2, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Drake_the_Dragon_Knight.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - }, - { - "name": "Celeste the Starcaller", - "description": "Mage with control over stars", - "perSec": 54, - "clickAdd": 54, - "scoreMultiplier": 2.3, - "isObtained": true, - "memberAmount": 1, - "texturePath": "res://Images/Members/Celeste_the_Starcaller.png", - "tier": 5, - "rarity": "Rarity.LEGENDARY" - } - ] -} + "members": [ + { + "clickAdd": 1, + "description": "Someone who does things for someone else, not very impressive.", + "isObtained": false, + "memberAmount": 5, + "name": "Squire", + "perSec": 1, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Squire.png", + "tier": 1 + }, + { + "clickAdd": 20, + "description": "Better at accurate clicks than consistent damage", + "isObtained": false, + "memberAmount": 1, + "name": "Archer", + "perSec": 1, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Archer.png", + "tier": 1 + }, + { + "clickAdd": 10, + "description": "A good mix of DPS and click power", + "isObtained": false, + "memberAmount": 2, + "name": "Mage", + "perSec": 10, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Mage.png", + "tier": 1 + }, + { + "clickAdd": 15, + "description": "Strong and brave, with high attack power", + "isObtained": true, + "memberAmount": 3, + "name": "Warrior", + "perSec": 5, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Warrior.png", + "tier": 1 + }, + { + "clickAdd": 18, + "description": "Quick and stealthy, with a high critical hit chance", + "isObtained": true, + "memberAmount": 2, + "name": "Rogue", + "perSec": 5, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Rogue.png", + "tier": 1 + }, + { + "clickAdd": 8, + "description": "Healer with powerful restorative abilities", + "isObtained": false, + "memberAmount": 1, + "name": "Priest", + "perSec": 10, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Priest.png", + "tier": 1 + }, + { + "clickAdd": 11, + "description": "Holy warrior with balanced stats", + "isObtained": false, + "memberAmount": 3, + "name": "Paladin", + "perSec": 7, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Paladin.png", + "tier": 1 + }, + { + "clickAdd": 13, + "description": "Ranged attacker with high agility", + "isObtained": true, + "memberAmount": 2, + "name": "Hunter", + "perSec": 9, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Hunter.png", + "tier": 1 + }, + { + "clickAdd": 11, + "description": "Support character with buffs and debuffs", + "isObtained": false, + "memberAmount": 2, + "name": "Bard", + "perSec": 8, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Bard.png", + "tier": 1 + }, + { + "clickAdd": 14, + "description": "Martial artist with high dodge and attack speed", + "isObtained": false, + "memberAmount": 2, + "name": "Monk", + "perSec": 6, + "rarity": "COMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Monk.png", + "tier": 1 + }, + { + "clickAdd": 8, + "description": "Master of dark magic and summoner of undead", + "isObtained": false, + "memberAmount": 1, + "name": "Necromancer", + "perSec": 16, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Necromancer.png", + "tier": 2 + }, + { + "clickAdd": 10, + "description": "Warrior with high precision and honor", + "isObtained": false, + "memberAmount": 1, + "name": "Samurai", + "perSec": 9, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Samurai.png", + "tier": 2 + }, + { + "clickAdd": 9, + "description": "Mage with control over the elements", + "isObtained": false, + "memberAmount": 1, + "name": "Elementalist", + "perSec": 17, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Elementalist.png", + "tier": 2 + }, + { + "clickAdd": 19, + "description": "Nature guardian with healing and summoning abilities", + "isObtained": false, + "memberAmount": 1, + "name": "Druid", + "perSec": 10, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Druid.png", + "tier": 2 + }, + { + "clickAdd": 20, + "description": "Powerful spellcaster with high damage", + "isObtained": true, + "memberAmount": 2, + "name": "Sorcerer", + "perSec": 10, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Sorcerer.png", + "tier": 2 + }, + { + "clickAdd": 21, + "description": "Deadly and stealthy killer", + "isObtained": true, + "memberAmount": 2, + "name": "Assassin", + "perSec": 11, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Assassin.png", + "tier": 2 + }, + { + "clickAdd": 10, + "description": "Fierce warrior with high attack speed", + "isObtained": false, + "memberAmount": 1, + "name": "Berserker", + "perSec": 22, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Berserker.png", + "tier": 2 + }, + { + "clickAdd": 11, + "description": "Can summon powerful creatures to fight", + "isObtained": false, + "memberAmount": 1, + "name": "Summoner", + "perSec": 23, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Summoner.png", + "tier": 2 + }, + { + "clickAdd": 5, + "description": "Master of illusion and trickery", + "isObtained": false, + "memberAmount": 1, + "name": "Illusionist", + "perSec": 30, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Illusionist.png", + "tier": 2 + }, + { + "clickAdd": 25, + "description": "Fearless fighter with high defense", + "isObtained": true, + "memberAmount": 2, + "name": "Gladiator", + "perSec": 10, + "rarity": "UNCOMMON", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Gladiator.png", + "tier": 2 + }, + { + "clickAdd": 26, + "description": "Leader with commanding presence", + "isObtained": false, + "memberAmount": 1, + "name": "Warlord", + "perSec": 26, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Warlord.png", + "tier": 3 + }, + { + "clickAdd": 20, + "description": "Enchanter with mystical powers", + "isObtained": false, + "memberAmount": 1, + "name": "Mystic", + "perSec": 27, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Mystic.png", + "tier": 3 + }, + { + "clickAdd": 21, + "description": "Spiritual guide with healing and offensive spells", + "isObtained": false, + "memberAmount": 1, + "name": "Shaman", + "perSec": 28, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Shaman.png", + "tier": 3 + }, + { + "clickAdd": 22, + "description": "Dark sorcerer with powerful curses", + "isObtained": false, + "memberAmount": 1, + "name": "Warlock", + "perSec": 29, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Warlock.png", + "tier": 3 + }, + { + "clickAdd": 23, + "description": "Brutal warrior with immense strength", + "isObtained": false, + "memberAmount": 1, + "name": "Barbarian", + "perSec": 30, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Barbarian.png", + "tier": 3 + }, + { + "clickAdd": 28, + "description": "Warrior with enchanted blades", + "isObtained": false, + "memberAmount": 1, + "name": "Spellblade", + "perSec": 31, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Spellblade.png", + "tier": 3 + }, + { + "clickAdd": 30, + "description": "Artisan with knowledge of magical runes", + "isObtained": false, + "memberAmount": 1, + "name": "Runesmith", + "perSec": 32, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Runesmith.png", + "tier": 3 + }, + { + "clickAdd": 29, + "description": "Holy warrior with divine protection", + "isObtained": false, + "memberAmount": 1, + "name": "Templar", + "perSec": 33, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Templar.png", + "tier": 3 + }, + { + "clickAdd": 34, + "description": "Hunter specialized in slaying demons", + "isObtained": false, + "memberAmount": 1, + "name": "Demon Hunter", + "perSec": 20, + "rarity": "RARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Demon_Hunter.png", + "tier": 3 + }, + { + "clickAdd": 40, + "description": "Mage with control over time", + "isObtained": false, + "memberAmount": 1, + "name": "Chronomancer", + "perSec": 35, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Chronomancer.png", + "tier": 4 + }, + { + "clickAdd": 36, + "description": "Knight reborn from the ashes", + "isObtained": false, + "memberAmount": 1, + "name": "Phoenix Knight", + "perSec": 44, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Phoenix_Knight.png", + "tier": 4 + }, + { + "clickAdd": 46, + "description": "Rogue with mastery over shadows", + "isObtained": true, + "memberAmount": 2, + "name": "Shadowblade", + "perSec": 37, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Shadowblade.png", + "tier": 4 + }, + { + "clickAdd": 38, + "description": "Mage with power to call forth stars", + "isObtained": false, + "memberAmount": 1, + "name": "Starcaller", + "perSec": 49, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Starcaller.png", + "tier": 4 + }, + { + "clickAdd": 50, + "description": "Undead sorcerer with dark powers", + "isObtained": false, + "memberAmount": 1, + "name": "Lich King", + "perSec": 39, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Lich_King.png", + "tier": 4 + }, + { + "clickAdd": 40, + "description": "Warrior with control over beasts", + "isObtained": false, + "memberAmount": 1, + "name": "Beastmaster", + "perSec": 51, + "rarity": "SUPERRARE", + "scoreMultiplier": 1, + "texturePath": "res://Images/Members/Beastmaster.png", + "tier": 4 + }, + { + "clickAdd": 54, + "description": "Supreme master of magic", + "isObtained": false, + "memberAmount": 1, + "name": "Archmage", + "perSec": 41, + "rarity": "SUPERRARE", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Archmage.png", + "tier": 4 + }, + { + "clickAdd": 42, + "description": "Hunter specialized in hunting witches", + "isObtained": false, + "memberAmount": 1, + "name": "Witch Hunter", + "perSec": 59, + "rarity": "SUPERRARE", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Witch_Hunter.png", + "tier": 4 + }, + { + "clickAdd": 57, + "description": "Sorceress with control over shadows", + "isObtained": false, + "memberAmount": 1, + "name": "Nyx the Shadowcaster", + "perSec": 43, + "rarity": "SUPERRARE", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Nyx_the_Shadowcaster.png", + "tier": 4 + }, + { + "clickAdd": 44, + "description": "Knight with unmatched valor", + "isObtained": false, + "memberAmount": 1, + "name": "Cedric the Valiant", + "perSec": 60, + "rarity": "SUPERRARE", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Cedric_the_Valiant.png", + "tier": 4 + }, + { + "clickAdd": 45, + "description": "Stealthy assassin with deadly skills", + "isObtained": false, + "memberAmount": 1, + "name": "Raven the Silent", + "perSec": 70, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Raven_the_Silent.png", + "tier": 5 + }, + { + "clickAdd": 76, + "description": "Fast and agile warrior", + "isObtained": false, + "memberAmount": 1, + "name": "Zephyr the Swift", + "perSec": 46, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Zephyr_the_Swift.png", + "tier": 5 + }, + { + "clickAdd": 47, + "description": "Guardian with high defense", + "isObtained": false, + "memberAmount": 1, + "name": "Thorn the Protector", + "perSec": 84, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Thorn_the_Protector.png", + "tier": 5 + }, + { + "clickAdd": 91, + "description": "Mage with control over fire", + "isObtained": false, + "memberAmount": 1, + "name": "Inferno the Flamebringer", + "perSec": 48, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Inferno_the_Flamebringer.png", + "tier": 5 + }, + { + "clickAdd": 49, + "description": "Sorcerer with mastery over darkness", + "isObtained": false, + "memberAmount": 1, + "name": "Eclipse the Shadowmaster", + "perSec": 89, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Eclipse_the_Shadowmaster.png", + "tier": 5 + }, + { + "clickAdd": 88, + "description": "Giant with control over ice", + "isObtained": false, + "memberAmount": 1, + "name": "Avalanche the Frost Giant", + "perSec": 50, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Avalanche_the_Frost_Giant.png", + "tier": 5 + }, + { + "clickAdd": 51, + "description": "Lord with control over storms", + "isObtained": false, + "memberAmount": 1, + "name": "Storm the Thunderlord", + "perSec": 93, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Storm_the_Thunderlord.png", + "tier": 5 + }, + { + "clickAdd": 98, + "description": "Sorceress with power over the moon", + "isObtained": false, + "memberAmount": 1, + "name": "Luna the Moon Sorceress", + "perSec": 52, + "rarity": "LEGENDARY", + "scoreMultiplier": 1.5, + "texturePath": "res://Images/Members/Luna_the_Moon_Sorceress.png", + "tier": 5 + }, + { + "clickAdd": 53, + "description": "Knight with dragon-like powers", + "isObtained": false, + "memberAmount": 1, + "name": "Drake the Dragon Knight", + "perSec": 100, + "rarity": "LEGENDARY", + "scoreMultiplier": 2, + "texturePath": "res://Images/Members/Drake_the_Dragon_Knight.png", + "tier": 5 + }, + { + "clickAdd": 120, + "description": "Mage with control over stars", + "isObtained": true, + "memberAmount": 1, + "name": "Celeste the Starcaller", + "perSec": 54, + "rarity": "LEGENDARY", + "scoreMultiplier": 2, + "texturePath": "res://Images/Members/Celeste_the_Starcaller.png", + "tier": 5 + } + ] +} \ No newline at end of file diff --git a/Scenes/Score.gd b/Scenes/Score.gd new file mode 100644 index 0000000..cdc0ad5 --- /dev/null +++ b/Scenes/Score.gd @@ -0,0 +1,14 @@ +extends Label +var from_score = 0 +var to_score = 100 + +# Called when the node enters the scene tree for the first time. +func _ready(): + #self.value = 100 + #var tween = get_tree().create_tween() + #tween.tween_property(self, "value", to_score, 1.0).set_trans(Tween.TRANS_LINEAR) + pass + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/Scenes/ScoreTween.gd b/Scenes/ScoreTween.gd new file mode 100644 index 0000000..e08925d --- /dev/null +++ b/Scenes/ScoreTween.gd @@ -0,0 +1,11 @@ +extends Node + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + pass diff --git a/Scenes/UserInterface.tscn b/Scenes/UserInterface.tscn index cdce804..ed93b47 100644 --- a/Scenes/UserInterface.tscn +++ b/Scenes/UserInterface.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=6 format=3 uid="uid://xh0p6v5ir05f"] +[gd_scene load_steps=7 format=3 uid="uid://xh0p6v5ir05f"] [ext_resource type="Script" path="res://Root.gd" id="1_lggo0"] [ext_resource type="Script" path="res://User Interface/Header.gd" id="2_o6t6l"] [ext_resource type="Script" path="res://User Interface/TeamButton.gd" id="3_1o3gu"] +[ext_resource type="Script" path="res://Scenes/Score.gd" id="3_gfalh"] [ext_resource type="Script" path="res://User Interface/Bossbutton.gd" id="4_3csg5"] [ext_resource type="Script" path="res://Scenes/saveTimer.gd" id="5_85eop"] @@ -37,6 +38,7 @@ text = "Score:" [node name="Score" type="Label" parent="UI/CanvasLayer/Header" groups=["Persist"]] layout_mode = 2 text = "0" +script = ExtResource("3_gfalh") [node name="Timer" type="Timer" parent="UI/CanvasLayer/Header" groups=["Persist"]] autostart = true diff --git a/Scenes/team.tscn b/Scenes/team.tscn index 6a70837..17b238e 100644 --- a/Scenes/team.tscn +++ b/Scenes/team.tscn @@ -21,10 +21,12 @@ grow_vertical = 2 script = ExtResource("1_6ykb6") [node name="UI" type="Control" parent="."] -layout_mode = 3 -anchors_preset = 0 -offset_right = 1920.0 -offset_bottom = 1080.0 +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="CanvasLayer" type="CanvasLayer" parent="UI"] @@ -91,28 +93,37 @@ autostart = true script = ExtResource("5_6vp5u") [node name="AspectRatioContainer" type="AspectRatioContainer" parent="UI"] -layout_mode = 0 -offset_left = -3.0 -offset_top = 40.0 -offset_right = 1152.0 -offset_bottom = 648.0 +layout_mode = 1 +anchors_preset = -1 +anchor_top = 0.062 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_top = -40.176 +grow_horizontal = 2 +grow_vertical = 2 [node name="TeamScreen" type="HBoxContainer" parent="UI/AspectRatioContainer"] visibility_layer = 2 layout_mode = 2 +size_flags_vertical = 4 alignment = 1 -[node name="Member1" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] -custom_minimum_size = Vector2(200, 10) +[node name="VSeparator" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 + +[node name="Member1" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] +custom_minimum_size = Vector2(200, 300) +layout_mode = 2 +stretch_mode = 0 script = ExtResource("6_dqecs") -[node name="VSeparator" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] +[node name="VSeparator1" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] layout_mode = 2 [node name="Member2" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 +stretch_mode = 0 script = ExtResource("7_ddddf") [node name="VSeparator2" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] @@ -121,6 +132,7 @@ layout_mode = 2 [node name="Member3" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 +stretch_mode = 0 script = ExtResource("8_d2bof") [node name="VSeparator3" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] @@ -129,6 +141,7 @@ layout_mode = 2 [node name="Member4" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 +stretch_mode = 0 script = ExtResource("9_2ploj") [node name="VSeparator4" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] @@ -137,8 +150,12 @@ layout_mode = 2 [node name="Member5" type="TextureButton" parent="UI/AspectRatioContainer/TeamScreen" groups=["Persist"]] custom_minimum_size = Vector2(200, 10) layout_mode = 2 +stretch_mode = 0 script = ExtResource("10_vu24c") +[node name="VSeparator5" type="VSeparator" parent="UI/AspectRatioContainer/TeamScreen"] +layout_mode = 2 + [node name="Label" type="Label" parent="UI/AspectRatioContainer/TeamScreen"] visible = false layout_mode = 2 diff --git a/User Interface/CharacterRoll.gd b/User Interface/CharacterRoll.gd index b4d53f1..e288b11 100644 --- a/User Interface/CharacterRoll.gd +++ b/User Interface/CharacterRoll.gd @@ -11,8 +11,8 @@ var getMembers = [] const Rarity = { "COMMON":1.0, "UNCOMMON": 0.8, - "RARE": 0.4, - "SUPERRARE": 0.08, + "RARE": 0.1, + "SUPERRARE": 0.04, "LEGENDARY": 0.02 } diff --git a/User Interface/Header.gd b/User Interface/Header.gd index 51d52af..42365fe 100644 --- a/User Interface/Header.gd +++ b/User Interface/Header.gd @@ -6,81 +6,92 @@ var clickAdd = 1 var scorePerSec = 1 var scoreMultiplier = 1 -#Click Upgrades Costs -var clickUpgradeReq1 = 10 -var clickUpgradeReq10 = 100 -var clickUpgradeReq20 = 1000 -var clickUpgradeReq40 = 10000 -var clickUpgradeReq60 = 100000 -var clickUpgradeReq80 = 1000000 -var clickUpgradeReq100 = 10000000 -var clickUpgradeReq200 = 100000000 -var clickUpgradeReq400 = 1000000000 - - -# Click Upgrades Amount -var clickUpgradeAmt1 = 1 -var clickUpgradeAmt10 = 10 -var clickUpgradeAmt20 = 20 -var clickUpgradeAmt40 = 40 -var clickUpgradeAmt60 = 60 -var clickUpgradeAmt80 = 80 -var clickUpgradeAmt100 = 100 -var clickUpgradeAmt200 = 200 -var clickUpgradeAmt400 = 400 - - -# Passive Upgrades Costs -var passiveUpgradeReq2 = 100 -var passiveUpgradeReq10 = 1000 -var passiveUpgradeReq20 = 10000 -var passiveUpgradeReq50 = 100000 -var passiveUpgradeReq100 = 1000000 -var passiveUpgradeReq200 = 10000000 -var passiveUpgradeReq500 = 100000000 -var passiveUpgradeReq1000 = 1000000000 -var passiveUpgradeReq10000 = 10000000000 - -# Passive Upgrades Amount -var passiveUpgradeAmt2 = 2 -var passiveUpgradeAmt10 = 10 -var passiveUpgradeAmt20 = 20 -var passiveUpgradeAmt50 = 50 -var passiveUpgradeAmt100 = 100 -var passiveUpgradeAmt200 = 200 -var passiveUpgradeAmt500 = 500 -var passiveUpgradeAmt1000 = 1000 -var passiveUpgradeAmt10000 = 10000 - +var current_score: int = Global.globalDamage +var target_score: int = 0 +var animation_duration: float = 1 +var elapsed_time: float = 0.0 +var is_animating: bool = false # Called when the node enters the scene tree for the first time. func _ready(): - #$ClickUpgrades.get_popup().connect("id_pressed",clickUpgrade) - #$PassiveUpgrades.get_popup().connect("id_pressed",passiveUpgrade) $Timer.connect("timeout", _on_Timer_timeout) - + $Score.text = str(round(Global.globalDamage)) - #Prints all input events, only for debugging #func _input(event): #print(event.as_text()) func _on_Timer_timeout(): + #get the current score based on values before new calculation + current_score = Global.globalDamage + #update values on new calculation Global.globalDamage += Global.globalDamagePerSec * Global.globalDamageMultiplier + update_score() + pass # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): - #Displays normal numbers until commas are needed - if Global.globalDamage > 999: - $Score.text = str(scoreFormat(score)) - else: - $Score.text = str(Global.globalDamage) #Changes the score number - + if Global.globalDamage <= 999: + if is_animating: + elapsed_time += delta + var t = elapsed_time / animation_duration + if t >= 1: + t = 1 + is_animating = false + current_score = lerp(current_score, target_score, t) + $Score.text = str(round(current_score)) + else: + $Score.text = str(format_number(Global.globalDamage)) + #Puts commas in score, can't get it with animations yet + #if Global.globalDamage > 999: + #$Score.text = str(scoreFormat(current_score)) + #else: + #$Score.text = str(Global.globalDamage) #Changes the score number + #print("Tween step: ", current_score) + #update_score() $ClickAdd.text = str(Global.globalDamagePerClick) $PerSec.text = str(Global.globalDamagePerSec) $Multiplier.text = str(Global.globalDamageMultiplier) +func update_score(): + target_score = Global.globalDamage # Increment the target score (or set it based on your game logic) + print("Update score called, target score: ", target_score) + #Displays normal numbers until commas are needed + #commented out for animation testing + + start_animation(current_score, target_score) + +func start_animation(from_score: int, to_score: int): + print("Animating score from ", from_score, " to ", to_score) + elapsed_time = 0.0 + is_animating = true + +func format_number(n: int) -> String: + if n >= 1_000_000_000_000: + # ran for every number greater or equal to a trillion + var i:float = snapped(float(n)/1_000_000_000_000, .01) + return str(i).replace(",", ".") + "T" + elif n >= 1_000_000_000: + # ran for every number smaller than 1 trillion BUT + # still greater or equal to 1 Billion + var i:float = snapped(float(n)/1_000_000_000, .01) + return str(i).replace(",", ".") + "B" + elif n >= 1_000_000: + # ran for every number smaller than 1 trillion BUT + # still greater or equal to 1 million + var i:float = snapped(float(n)/1_000_000, .01) + return str(i).replace(",", ".") + "M" + elif n >= 1_000: + # ran for every number smaller than 1 million BUT + # still greater or equal to 1 thousand + var i:float = snapped(float(n)/1_000, .01) + return str(i).replace(",", ".") + "k" + else: + # ran otherwise + return str(n) + + #This checks any input that comes in func _input(event): @@ -104,154 +115,6 @@ func scoreFormat(score): func leftClick(): Global.globalDamage += Global.globalDamagePerClick * Global.globalDamageMultiplier + update_score() -#func clickUpgrade(id): - #match id: - #0: - #if Global.globalDamage >= clickUpgradeReq1: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq1 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt1 - #else: - #print("not enough score") - #1: - #if Global.globalDamage >= clickUpgradeReq10: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq10 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt10 - #else: - #print("not enough score") - #2: - #if Global.globalDamage >= clickUpgradeReq20: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq20 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt20 - #else: - #print("not enough score") - #3: - #if Global.globalDamage >= clickUpgradeReq40: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq40 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt40 - #else: - #print("not enough score") - #4: - #if Global.globalDamage >= clickUpgradeReq60: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq60 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt60 - #else: - #print("not enough score") - #5: - #if Global.globalDamage >= clickUpgradeReq80: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq80 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt80 - #else: - #print("not enough score") - #6: - #if Global.globalDamage >= clickUpgradeReq100: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq100 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt100 - #else: - #print("not enough score") - #7: - #if Global.globalDamage >= clickUpgradeReq200: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq200 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt200 - #else: - #print("not enough score") - #8: - #if Global.globalDamage >= clickUpgradeReq400: - #print ("Score sufficient") - #Global.globalDamage -=clickUpgradeReq400 - #$ClickUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerClick += clickUpgradeAmt400 - #else: - #print("not enough score") -# -#func passiveUpgrade(id): - #match id: - #0: - #if Global.globalDamage >= passiveUpgradeReq2: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq2 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt2 - #else: - #print("not enough score") - #1: - #if Global.globalDamage >= passiveUpgradeReq10: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq10 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt10 - #else: - #print("not enough score") - #2: - #if Global.globalDamage >= passiveUpgradeReq20: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq20 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt20 - #else: - #print("not enough score") - #3: - #if Global.globalDamage >= passiveUpgradeReq50: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq50 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt50 - #else: - #print("not enough score") - #4: - #if Global.globalDamage >= passiveUpgradeReq100: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq100 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt100 - #else: - #print("not enough score") - #5: - #if Global.globalDamage >= passiveUpgradeReq200: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq200 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt200 - #else: - #print("not enough score") - #6: - #if Global.globalDamage >= passiveUpgradeReq500: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq500 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt500 - #else: - #print("not enough score") - #7: - #if Global.globalDamage >= passiveUpgradeReq1000: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq1000 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt1000 - #else: - #print("not enough score") - #8: - #if Global.globalDamage >= passiveUpgradeReq10000: - #print ("Score sufficient") - #Global.globalDamage -=passiveUpgradeReq10000 - #$PassiveUpgrades.get_popup().set_item_disabled(id, true) - #Global.globalDamagePerSec = passiveUpgradeAmt10000 - #else: - #print("not enough score")