Skip to content

Commit

Permalink
Merge pull request #361 from db0/0572
Browse files Browse the repository at this point in the history
Added extra Boss Curios
  • Loading branch information
db0 authored Jun 16, 2022
2 parents 6af3068 + 79aceb8 commit 52d5cd9
Show file tree
Hide file tree
Showing 51 changed files with 597 additions and 117 deletions.
6 changes: 3 additions & 3 deletions .gut_editor_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@
"hide_orphans": false,
"ignore_pause": true,
"include_subdirs": false,
"inner_class": "TestDoubleFusion",
"inner_class": "TestCostlyUpgrades",
"junit_xml_file": "",
"junit_xml_timestamp": false,
"log_level": 3,
"opacity": 68,
"post_run_script": "",
"pre_run_script": "",
"prefix": "test_",
"selected": "test_journal_artifacts.gd",
"selected": "test_onceoff_artifacts.gd",
"should_exit": false,
"should_exit_on_success": false,
"should_maximize": true,
Expand All @@ -33,7 +33,7 @@
"tests": [

],
"unit_test_name": "test_artifact_results",
"unit_test_name": null,
"gut_on_top": true,
"panel_options": {
"font_name": "CourierPrime",
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ See the issue tracker for progress and more ideas and feel free to suggest more.
## Done

* Three unique acts with different encounters and torments in each.
* 5 initial card groups
* Curios
* Memories
* 200+ cards
* 7 card pool groups
* 50+ Curios
* 25+ Memories
* Shop
* Non-ordeal encounters
* Elite Torments
Expand Down
Binary file added assets/icons/artifacts/black_rose.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
35 changes: 35 additions & 0 deletions assets/icons/artifacts/black_rose.png.import
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[remap]

importer="texture"
type="StreamTexture"
path="res://.import/black_rose.png-41626d288fd472215d35fe613176f45b.stex"
metadata={
"vram_texture": false
}

[deps]

source_file="res://assets/icons/artifacts/black_rose.png"
dest_files=[ "res://.import/black_rose.png-41626d288fd472215d35fe613176f45b.stex" ]

[params]

compress/mode=1
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0
8 changes: 8 additions & 0 deletions src/core/ScriptingEngine/ScriptProperties.gd
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,12 @@ const KEY_STORE_INTEGER := "store_integer"
#
# specified how many of the "thing" done by the task, to perform.
const KEY_OBJECT_COUNT := "object_count"
# Value Type: Float (Default = 0.2).
#
# Specifies how long some scripts should take between iterations
#
# used in spawn_card_to_container
const KEY_YIELD_TIME:= "yield_time"
# Value Type: String
#
# Used in conjunction with the following tasks
Expand Down Expand Up @@ -1278,6 +1284,8 @@ static func get_default(property: String):
default = "manual"
KEY_SORT_BY:
default = "node_index"
KEY_YIELD_TIME:
default = 0.2
_:
default = null
return(default)
Expand Down
3 changes: 2 additions & 1 deletion src/core/ScriptingEngine/ScriptingEngine.gd
Original file line number Diff line number Diff line change
Expand Up @@ -591,7 +591,8 @@ func spawn_card_to_container(script: ScriptTask) -> void:
card.set_to_idle()
# We set the drawn cards as the subjects, so that they can be
# used by other followup scripts
yield(cfc.get_tree().create_timer(0.2), "timeout")
var yield_time = script.get_property(SP.KEY_YIELD_TIME)
yield(cfc.get_tree().create_timer(yield_time), "timeout")
spawned_cards.append(card)
script.subjects = spawned_cards

Expand Down
109 changes: 109 additions & 0 deletions src/dreamscape/Artifacts/ArtifactDefinitions.gd
Original file line number Diff line number Diff line change
Expand Up @@ -1138,6 +1138,109 @@ const DoubleFusion := {
}


const ThickThorns := {
"canonical_name": "ThickThorns",
"name": "Black Rose",
"description": "{artifact_name}: At that start of each Ordeal turn, gain {effect_stacks} {thorns}. "\
+ "Lose {detrimental_integer} {thorns} whenever your deck is reshuffled.",
"icon": preload("res://assets/icons/artifacts/black_rose.png"),
"context": EffectContext.BATTLE,
"rarity": "Rare",
"amounts": {
"effect_stacks": 2,
"detrimental_integer": 4,
},
"linked_terms": [
Terms.ACTIVE_EFFECTS.thorns.name,
],
}


const ThickBoss := {
"canonical_name": "ThickBoss",
"name": "Buddha Figurine",
"description": "{artifact_name}: You have {immersion_amount} extra {energy} per turn.\n"\
+ "At the start of each ordeal, add a number of Perturbations in your discard pile until your deck size is {min_deck_size}",
"icon": GENERIC_BOSS_ARTIFACT_ICON,
"context": EffectContext.BATTLE,
"rarity": "Boss",
"amounts": {
"min_deck_size": 30,
"immersion_amount": 1,
},
"linked_terms": [
"energy",
],
}


const NoChoice := { # TODO: Tests
"canonical_name": "NoChoice",
"name": "Funky Compass",
"description": "{artifact_name}: You have {immersion_amount} extra {energy} per turn.\n"\
+ "You only ever get 1 choice for each journal page",
"icon": GENERIC_BOSS_ARTIFACT_ICON,
"context": EffectContext.BATTLE,
"rarity": "Boss",
"amounts": {
"immersion_amount": 1,
},
"linked_terms": [
"energy",
],
}


const CostlyUpgrades := {
"canonical_name": "CostlyUpgrades",
"name": "Costly Upgrades",
"description": "{artifact_name}: You have {immersion_amount} extra {energy} per turn.\n"\
+ "Massively increase the time needed to gain {pathos} masteries.",
"icon": GENERIC_BOSS_ARTIFACT_ICON,
"context": EffectContext.BATTLE,
"rarity": "Boss",
"amounts": {
"immersion_amount": 1,
"pathos_req_increase": 100,
},
"linked_terms": [
"energy",
],
}

const NoSmith := { # TODO: Tests
"canonical_name": "NoSmith",
"name": "Espresso Machine",
"description": "{artifact_name}: You have {immersion_amount} extra {energy} per turn.\n"\
+ "You cannot progress cards during deep torpor anymore.",
"icon": preload("res://assets/icons/artifacts/moka-pot.png"),
"context": EffectContext.BATTLE,
"rarity": "Boss",
"amounts": {
"immersion_amount": 1,
},
"linked_terms": [
"energy",
],
}

const CursedCurios := { # TODO: Tests
"canonical_name": "CursedCurios",
"name": "Disturbing Curios",
"description": "{artifact_name}: You have {immersion_amount} extra {energy} per turn.\n"\
+ "All recalled curios, always give 1 extra {perturbation}",
"icon": GENERIC_BOSS_ARTIFACT_ICON,
"context": EffectContext.BATTLE,
"rarity": "Boss",
"amounts": {
"immersion_amount": 1,
"chance_multiplier": 2,
},
"linked_terms": [
"energy",
],
}

## TODO: Artifact which increases chance to find Fusion cards
## TODO. Scipt base doesn't exist yet
#const DoubleMemory := {
Expand Down Expand Up @@ -1201,6 +1304,7 @@ const GENERIC := [
FasterArtifactLevelUp,
FasterRestLevelUp,
LightningMarble,
ThickThorns,
]

# Archetype-specific artifacts which only appear in runs in which
Expand Down Expand Up @@ -1243,6 +1347,11 @@ const BOSS := [
NoRest,
SmallerDrafts,
BirdHouse,
ThickBoss,
NoChoice,
CostlyUpgrades,
NoSmith,
CursedCurios,
]


Expand Down
28 changes: 28 additions & 0 deletions src/dreamscape/Artifacts/CostlyUpgrades.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
if not cfc.NMAP.board.dreamer:
yield(cfc.NMAP.board, "ready")


func _on_player_turn_started(_turn: Turn = null) -> void:
var script = [
{
"name": "mod_counter",
"counter_name": "immersion",
"tags": ["Curio", "New Turn"],
"modification": ArtifactDefinitions.ThickBoss.amounts.immersion_amount,
},
]
execute_script(script)


func _on_scripting_completed(_artifact, _sceng) -> void:
_send_trigger_signal()

func _on_artifact_added() -> void:
for ptype in globals.player.pathos.pathi.values():
ptype.perm_modify_requirements_for_level(ArtifactDefinitions.CostlyUpgrades.amounts.pathos_req_increase)
23 changes: 23 additions & 0 deletions src/dreamscape/Artifacts/CursedCurios.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
if not cfc.NMAP.board.dreamer:
yield(cfc.NMAP.board, "ready")

func _on_player_turn_started(_turn: Turn = null) -> void:
var script = [
{
"name": "mod_counter",
"counter_name": "immersion",
"tags": ["Curio", "New Turn"],
"modification": ArtifactDefinitions.NoRest.amounts.immersion_amount,
},
]
execute_script(script)


func _on_scripting_completed(_artifact, _sceng) -> void:
_send_trigger_signal()
4 changes: 1 addition & 3 deletions src/dreamscape/Artifacts/EndingHeal.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
cfc.NMAP.board.connect("battle_ended", self, "_on_battle_ended")
EventBus.connect("battle_ended", self, "_on_battle_ended")

func _on_battle_ended() -> void:
globals.player.damage -= 6
Expand Down
2 changes: 1 addition & 1 deletion src/dreamscape/Artifacts/LimitMaxExert.gd
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ func get_effect_alteration(
return(0)
if not script.get_property(SP.KEY_TAGS).has('Exert'):
return(0)
if not cfc.NMAP.board.turn.encounter_event_count.get("player_total_damage_own_turn",0) < ArtifactDefinitions.LimitMaxExert.amounts.exert_amount:
if cfc.NMAP.board.turn.encounter_event_count.get("player_total_damage_own_turn",0) < ArtifactDefinitions.LimitMaxExert.amounts.exert_amount:
return(0)
if script.subjects[0] != cfc.NMAP.board.dreamer:
return(0)
Expand Down
24 changes: 24 additions & 0 deletions src/dreamscape/Artifacts/NoChoice.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
if not cfc.NMAP.board.dreamer:
yield(cfc.NMAP.board, "ready")


func _on_player_turn_started(_turn: Turn = null) -> void:
var script = [
{
"name": "mod_counter",
"counter_name": "immersion",
"tags": ["Curio", "New Turn"],
"modification": ArtifactDefinitions.ThickBoss.amounts.immersion_amount,
},
]
execute_script(script)


func _on_scripting_completed(_artifact, _sceng) -> void:
_send_trigger_signal()
23 changes: 23 additions & 0 deletions src/dreamscape/Artifacts/NoSmith.gd
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
if not cfc.NMAP.board.dreamer:
yield(cfc.NMAP.board, "ready")

func _on_player_turn_started(_turn: Turn = null) -> void:
var script = [
{
"name": "mod_counter",
"counter_name": "immersion",
"tags": ["Curio", "New Turn"],
"modification": ArtifactDefinitions.NoRest.amounts.immersion_amount,
},
]
execute_script(script)


func _on_scripting_completed(_artifact, _sceng) -> void:
_send_trigger_signal()
4 changes: 1 addition & 3 deletions src/dreamscape/Artifacts/QuickenUp.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
cfc.NMAP.board.connect("battle_begun", self, "_on_battle_start")
EventBus.connect("battle_begun", self, "_on_battle_start")

func setup(signifier_details: Dictionary, signifier_name: String):
.setup(signifier_details,signifier_name)
Expand Down
4 changes: 1 addition & 3 deletions src/dreamscape/Artifacts/RepressedEnemyBuff.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
cfc.NMAP.board.connect("battle_begun", self, "_on_battle_start")
EventBus.connect("battle_begun", self, "_on_battle_start")


func _on_battle_start():
Expand Down
4 changes: 1 addition & 3 deletions src/dreamscape/Artifacts/StartingDisempower.gd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ extends Artifact

func _ready() -> void:
if is_active and effect_context == ArtifactDefinitions.EffectContext.BATTLE:
if not cfc.are_all_nodes_mapped:
yield(cfc, "all_nodes_mapped")
cfc.NMAP.board.connect("battle_begun", self, "_on_battle_start")
EventBus.connect("battle_begun", self, "_on_battle_start")


func _on_battle_start():
Expand Down
Loading

0 comments on commit 52d5cd9

Please sign in to comment.