From 3615cb18d168084e8d76404c84296ed722c102e8 Mon Sep 17 00:00:00 2001 From: carlarctg <53100513+carlarctg@users.noreply.github.com> Date: Wed, 10 Jul 2024 21:45:29 -0300 Subject: [PATCH] Adds impossible geometric shape artifacts, places them in distorted labs (#72605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adds impossible geometric shape artifacts, places them in distorted labs * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Jianxiang Wang (王健翔) * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update data/json/artifact/artifact_item_types.json * Update spears_dps.json * Update data/mods/TEST_DATA/expected_dps_data/spears_dps.json --------- Co-authored-by: Maleclypse <54345792+Maleclypse@users.noreply.github.com> Co-authored-by: Jianxiang Wang (王健翔) --- data/json/artifact/artifact_item_types.json | 87 +++++++++++++++++++ data/json/artifact/relic_procgen_data.json | 84 ++++++++++++++++++ data/json/itemgroups/artifacts.json | 4 +- data/json/itemgroups/twisted_geometry.json | 16 ++++ .../expected_dps_data/spears_dps.json | 1 + 5 files changed, 190 insertions(+), 2 deletions(-) create mode 100644 data/json/itemgroups/twisted_geometry.json diff --git a/data/json/artifact/artifact_item_types.json b/data/json/artifact/artifact_item_types.json index 5e026e2b1b583..0e7308872b810 100644 --- a/data/json/artifact/artifact_item_types.json +++ b/data/json/artifact/artifact_item_types.json @@ -365,5 +365,92 @@ "copy-from": "club_wooden", "name": { "str": "ancient club" }, "description": "A misshapen rod of gnarled, knotted wood. The knots in the wood exhibit a strange fractal pattern. It is the only one of its kind.\nIt may have unknown powers; try activating them." + }, + { + "id": "art_bomorrean", + "type": "GENERIC", + "copy-from": "art_ring", + "name": { "str": "set of oddly interlocked rings", "str_pl": "sets of oddly interlocked rings" }, + "description": "A set of three rings linked together. There's something about the way the rings connect to each other that gives you a headache. It is the only one of its kind.\nIt may have unknown powers; try activating them." + }, + { + "id": "art_penrose", + "type": "GENERIC", + "copy-from": "art_pyramid", + "name": { "str": "strange triangle" }, + "description": "A large triangle made out of three thick rectangles that connect to each other in an angle. No matter how much you turn it around, you can't seem to comprehend how it links together. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "volume": "2 L", + "weight": "2 kg" + }, + { + "id": "art_trident", + "type": "TOOL", + "copy-from": "art_spear", + "name": { "str": "impossible trident" }, + "description": "A large trident made entirely out of an indiscernible material. The prong in the middle seems to fade away into nothingness when looked at from the top, but you can clearly see the shaft connecting the tip of the weapon from the bottom. It's giving you a headache. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "looks_like": "pitchfork", + "color": "dark_gray", + "material": [ "anomaly" ], + "techniques": [ "WBLOCK_1", "DEF_DISARM" ], + "volume": "1750 ml", + "longest_side": "140 cm", + "qualities": [ [ "COOK", 1 ] ], + "flags": [ "SPEAR", "REACH_ATTACK", "SHEATH_SPEAR" ], + "melee_damage": { "bash": 5, "stab": 28 } + }, + { + "id": "art_klein", + "type": "GENERIC", + "copy-from": "art_tube", + "name": { "str": "self-crossing flask" }, + "description": "A transparent flask with a neck that connects directly to its bottom without overlapping itself, even though it clearly does. You can put things in it, but attempting to follow their path through the neck is impossible. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "pocket_data": [ + { + "pocket_type": "CONTAINER", + "airtight": true, + "watertight": true, + "rigid": true, + "max_contains_volume": "500 ml", + "max_item_volume": "25 ml", + "max_contains_weight": "1 kg", + "weight_multiplier": 0, + "//": "The bacteria can't find a way inside!", + "spoil_multiplier": 0.5, + "moves": 5000 + } + ], + "volume": "1500 ml", + "flags": [ "TARDIS", "ZERO_WEIGHT" ], + "weight": "0 kg" + }, + { + "id": "art_tesseract", + "type": "GENERIC", + "copy-from": "art_lamp", + "name": { "str": "four-dimensional cube" }, + "description": "It's a cube that constantly shrinks and grows in size. It's two cubes linked by the vertices, with ever-shifting sides folding onto each other, over and over. It's four cubes in the exact same position. It's a cube fading to ash then reverting to pristine form repeatedly. It's all of these at once, and none of them at all. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "volume": "1 L", + "weight": "8 kg" + }, + { + "id": "art_irrational", + "type": "GENERIC", + "copy-from": "art_lamp", + "name": { "str": "irrational cube" }, + "description": "A large wire-frame cube. The interior wires somehow appear to be over the exterior wires, no matter which angle you look at the cube from. Trying to trace the lines with your finger is probably not a good idea. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "volume": "1 L", + "weight": "0 kg", + "longest_side": "30 cm", + "flags": [ "ZERO_WEIGHT" ] + }, + { + "id": "art_duocylinder", + "type": "GENERIC", + "copy-from": "art_urchin", + "name": { "str": "wobbly ring" }, + "description": "A chunky ring that folds onto itself continuously, preventing its use as an esoteric piece of jewelry. It is the only one of its kind.\nIt may have unknown powers; try activating them.", + "volume": "5 ml", + "weight": "8 kg", + "longest_side": "5 cm" } ] diff --git a/data/json/artifact/relic_procgen_data.json b/data/json/artifact/relic_procgen_data.json index 2dc869a218501..91ee1af746fa8 100644 --- a/data/json/artifact/relic_procgen_data.json +++ b/data/json/artifact/relic_procgen_data.json @@ -966,6 +966,90 @@ { "weight": 100, "item": "altered_apron" } ] }, + { + "type": "relic_procgen_data", + "id": "twisted_geometry", + "//": "These are the artifacts generated in the distorted level of physics labs.", + "//2": "In general, their effects are physics-based, are more impactful than normal artifacts, and cause less resonance (They're from our realm, just twisted), but they're slow to charge and their item types are bulky and hard to lug around.", + "charge_types": [ + { + "weight": 100, + "charges": { "range": [ 0, 4 ], "power": 10 }, + "charges_per_use": { "range": [ 1, 2 ], "power": 10 }, + "max_charges": { "range": [ 1, 4 ], "power": 10 }, + "recharge_type": "periodic", + "time": [ "12 h", "2 d" ] + } + ], + "active_procgen_values": [ + { "weight": 100, "spell_id": "AO_FORCE_PULL", "base_power": 200 }, + { "weight": 100, "spell_id": "AO_TELEPORTITIS", "base_power": -500 }, + { "weight": 100, "spell_id": "AO_TELEPORT", "base_power": 500 }, + { "weight": 100, "spell_id": "AO_SLOW", "base_power": -150 }, + { "weight": 100, "spell_id": "AO_TIME_STOP", "base_power": 1000 }, + { "weight": 100, "spell_id": "AO_DARKNESS_EFFECT", "base_power": -50 }, + { "weight": 100, "spell_id": "AEA_SHADOWS", "base_power": -50 }, + { "weight": 100, "spell_id": "AEA_LIGHT", "base_power": 100 }, + { "weight": 100, "spell_id": "AEA_DIM", "base_power": 100 }, + { "weight": 100, "spell_id": "AEA_PULSE", "base_power": 150 } + ], + "passive_add_procgen_values": [ + { "weight": 100, "min_value": -5, "max_value": 6, "type": "STRENGTH", "increment": 1, "power_per_increment": 150 }, + { + "weight": 100, + "min_value": -5, + "max_value": 6, + "type": "DEXTERITY", + "increment": 1, + "power_per_increment": 150 + }, + { + "weight": 100, + "min_value": -1, + "max_value": 2, + "type": "CARRY_WEIGHT", + "increment": 0.3, + "power_per_increment": 50 + }, + { + "weight": 100, + "min_value": -0.6, + "max_value": 0.4, + "type": "MOVE_COST", + "increment": 0.2, + "power_per_increment": -150 + }, + { + "weight": 100, + "min_value": -0.8, + "max_value": 0.8, + "type": "ATTACK_SPEED", + "increment": 0.2, + "power_per_increment": -100 + }, + { + "weight": 100, + "min_value": -35, + "max_value": 35, + "type": "SPEED", + "increment": 5, + "power_per_increment": 150 + } + ], + "type_weights": [ + { "weight": 50, "value": "passive_enchantment_add" }, + { "weight": 25, "value": "active_enchantment" }, + { "weight": 50, "value": "passive_enchantment_mult" } + ], + "items": [ + { "weight": 75, "item": "art_bomorrean" }, + { "weight": 100, "item": "art_penrose" }, + { "weight": 100, "item": "art_trident" }, + { "weight": 100, "item": "art_klein" }, + { "weight": 100, "item": "art_tesseract" }, + { "weight": 100, "item": "art_irrational" } + ] + }, { "type": "relic_procgen_data", "id": "portalmancy", diff --git a/data/json/itemgroups/artifacts.json b/data/json/itemgroups/artifacts.json index 813a2bf4581ac..4c618cb0d607b 100644 --- a/data/json/itemgroups/artifacts.json +++ b/data/json/itemgroups/artifacts.json @@ -5,9 +5,9 @@ "subtype": "distribution", "entries": [ { - "group": "ps_artifacts", + "group": "twisted_geometry", "artifact": { - "procgen_id": "netherum_tunnels", + "procgen_id": "twisted_geometry", "rules": { "power_level": 750, "max_attributes": 4, "max_negative_power": -1000, "resonant": true } }, "prob": 100 diff --git a/data/json/itemgroups/twisted_geometry.json b/data/json/itemgroups/twisted_geometry.json new file mode 100644 index 0000000000000..011ec3e6cf4f6 --- /dev/null +++ b/data/json/itemgroups/twisted_geometry.json @@ -0,0 +1,16 @@ +[ + { + "type": "item_group", + "id": "twisted_geometry", + "subtype": "distribution", + "items": [ + [ "art_bomorrean", 7 ], + [ "art_penrose", 10 ], + [ "art_trident", 10 ], + [ "art_klein", 10 ], + [ "art_tesseract", 10 ], + [ "art_irrational", 10 ], + [ "art_duocylinder", 10 ] + ] + } +] diff --git a/data/mods/TEST_DATA/expected_dps_data/spears_dps.json b/data/mods/TEST_DATA/expected_dps_data/spears_dps.json index afbd464c84ccc..ba0f1683f61fd 100644 --- a/data/mods/TEST_DATA/expected_dps_data/spears_dps.json +++ b/data/mods/TEST_DATA/expected_dps_data/spears_dps.json @@ -18,6 +18,7 @@ "javelin_fletched_bronze": 11.68, "javelin_iron": 12.3, "pitchfork": 12.48, + "art_trident": 25.5, "EOD_hotstick": 12.51, "simple_spear_pipe": 12.59, "javelin_fletched": 13.23,