Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Xedra Evolved] Add new time related powers for each default dream class #78111

Merged
merged 52 commits into from
Dec 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
fa601c1
Initial Commit: 1 Time power per class + related infrastructure
b3brodie Nov 24, 2024
a6c1f80
Add dreamer spell to generate accelerated time fields
b3brodie Nov 24, 2024
4ee98b4
don't show trap message to players because the effect will already do so
b3brodie Nov 24, 2024
63198a6
Adjust effect durations to closely match being in bubble or not
b3brodie Nov 24, 2024
6d8cc2c
Add spell learning item for acceleration generator spell
b3brodie Nov 24, 2024
cdbf38d
Add pocketwatch for dreamsmith that stops time for 10 seconds and rec…
b3brodie Nov 24, 2024
8bd104b
more specific ammo type
b3brodie Nov 24, 2024
0f57e84
allow pocket watch to tell time
b3brodie Nov 24, 2024
a461407
fix recharge time to account for bug
b3brodie Nov 24, 2024
fa76c99
Add inventor injury reset device and allow eoc use actions to specify…
b3brodie Nov 25, 2024
fce1737
adjust condition syntax
b3brodie Nov 25, 2024
02533b2
Add bodypart field to character_takes_damage and use to make damage r…
b3brodie Nov 26, 2024
ed1f736
get rid of test eoc
b3brodie Nov 26, 2024
effcb9d
Make reverse damage revert pain and add pain to character takes damag…
b3brodie Nov 26, 2024
a637fd2
spelling
b3brodie Nov 26, 2024
d4dc559
more spelling
b3brodie Nov 26, 2024
b9d9485
Prevent interacting with things within impassable fields
b3brodie Nov 26, 2024
c6de5f0
prevent mining impassable fields
b3brodie Nov 26, 2024
d774625
Add eoc effect to cancel activities
b3brodie Nov 26, 2024
52299e7
Add time stop activity to make players not have to manually progress …
b3brodie Nov 26, 2024
fa50ebe
Characters cannot dodge with CANNOT_MOVE
b3brodie Nov 26, 2024
81a0bbb
Monsters cannot dodge with CANNOT_MOVE flag
b3brodie Nov 26, 2024
0c00d2b
prevent melee training on monsters that are invulnerable and cannot move
b3brodie Nov 26, 2024
574a57f
prevent throwing experience too
b3brodie Nov 27, 2024
7a08f06
add no temperature progression flag and add to time freeze
b3brodie Nov 27, 2024
f3f13b0
Add some extra logic for timefrozen npcs
b3brodie Nov 27, 2024
4918224
add flag to freeze effect progression and give to time freeze
b3brodie Nov 27, 2024
ed61699
Characters that cannot take damage cannot bleed
b3brodie Nov 27, 2024
cb4399e
Fix temperature being affected by body wetness with no temperature ch…
b3brodie Nov 27, 2024
ae180e4
Add erosion buff to eater of dreams
b3brodie Nov 28, 2024
8e35ca2
documentation pass
b3brodie Nov 28, 2024
c0222df
documentation clarity
b3brodie Nov 28, 2024
2a5b47b
The greatest lint of them all
b3brodie Nov 28, 2024
308d72f
missed linting these
b3brodie Nov 29, 2024
a972e1f
cancel_activity documentation
b3brodie Nov 29, 2024
c63d4ff
Merge branch 'CleverRaven:master' into xedra_time
b3brodie Nov 29, 2024
1c428a1
tripoint conversion
b3brodie Nov 29, 2024
2d8c2d9
iuse formatting
b3brodie Nov 29, 2024
0134968
move away from old cast style
b3brodie Nov 29, 2024
9e92920
Merge branch 'CleverRaven:master' into xedra_time
b3brodie Nov 30, 2024
af0d2f0
prevent vehicle collisions from moving unmovable creatures and bleedi…
b3brodie Nov 30, 2024
89bba7e
astyle and delete prints
b3brodie Nov 30, 2024
4fd9598
small number changes
b3brodie Nov 30, 2024
a7044e8
prevent advanced inventory from picking up items on impassable fields
b3brodie Nov 30, 2024
ec59fdc
astyle
b3brodie Nov 30, 2024
86a9a8f
prevent sorting items in impassable fields and begining hauling items…
b3brodie Nov 30, 2024
6ca53dc
clang fix
b3brodie Nov 30, 2024
ef6eea5
clang
b3brodie Dec 1, 2024
c3c9415
Merge branch 'CleverRaven:master' into xedra_time
b3brodie Dec 1, 2024
3c6c2ce
clang
b3brodie Dec 1, 2024
53ec2a4
Merge branch 'xedra_time' of https://github.com/b3brodie/Cataclysm-DD…
b3brodie Dec 1, 2024
5acd92f
clang
b3brodie Dec 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions data/json/flags.json
Original file line number Diff line number Diff line change
Expand Up @@ -2613,5 +2613,28 @@
"id": "CRAFT_IN_DARKNESS",
"type": "json_flag",
"info": "You can craft at 100% speed in any level of light."
},
{
"id": "CANNOT_ATTACK",
"type": "json_flag",
"//": "Creatures and players with this flag cannot attack (includes any spellcasting)."
},
{
"id": "CANNOT_MOVE",
"type": "json_flag",
"//": "Creatures and players with this flag cannot naturally move."
},
{
"id": "CANNOT_TAKE_DAMAGE",
"type": "json_flag"
},
{
"id": "CANNOT_CHANGE_TEMPERATURE",
"type": "json_flag"
},
{
"id": "FREEZE_EFFECTS",
"type": "json_flag",
"//": "Creatures with this flag will not have their effects change in duration except for the effects that contain this flag."
}
]
1 change: 1 addition & 0 deletions data/json/mutations/mutations.json
Original file line number Diff line number Diff line change
Expand Up @@ -9672,6 +9672,7 @@
"points": 99,
"valid": false,
"description": "Bug-repellent forcefield.",
"flags": [ "CANNOT_TAKE_DAMAGE" ],
"debug": true
},
{
Expand Down
53 changes: 53 additions & 0 deletions data/mods/Xedra_Evolved/effects/effects.json
Original file line number Diff line number Diff line change
Expand Up @@ -2712,5 +2712,58 @@
"values": [ { "value": "PHASE_DISTANCE", "add": 1 } ]
}
]
},
{
"type": "effect_type",
"id": "effect_xedra_time_freeze",
"name": [ "Frozen in Time" ],
"desc": [ "You are completely frozen in time." ],
"remove_message": "Everything is suddenly different.",
"rating": "neutral",
"immune_flags": [ "DIMENSIONAL_ANCHOR", "STABILIZED_TIMELINE" ],
"flags": [ "CANNOT_ATTACK", "CANNOT_MOVE", "CANNOT_TAKE_DAMAGE", "CANNOT_CHANGE_TEMPERATURE", "FREEZE_EFFECTS" ],
"show_in_info": true
},
{
"type": "effect_type",
"id": "effect_xedra_eater_stabilize_reality",
"name": [ "Stabilized Reality" ],
"desc": [ "You are anchored in normal reality." ],
"remove_message": "You feel much more vulnerable.",
"rating": "good",
"flags": [ "DIMENSIONAL_ANCHOR", "STABILIZED_TIMELINE" ],
"show_in_info": true
},
{
"type": "effect_type",
"id": "effect_xedra_dreamer_generate_accelerated_time",
"name": [ "Accelerated Time Emission" ],
"desc": [ "You continuously generate fields of short-lived accelerated time." ],
"enchantments": [ { "emitter": "xedra_dreamer_emit_accelerated_time" } ],
"rating": "good",
"show_in_info": true
},
{
"type": "effect_type",
"id": "effect_xedra_dreamer_accelerated_time",
"name": [ "Time Accelerated" ],
"desc": [ "Your local time is far accelerated to the baseline, allowing you to act much quicker." ],
"remove_message": "Everything seems much quicker.",
"rating": "good",
"max_intensity": 1,
"max_duration": "2 seconds",
"show_in_info": true,
"enchantments": [ { "values": [ { "value": "SPEED", "multiply": 1 } ] } ]
},
{
"type": "effect_type",
"id": "effect_xedra_eater_erosion",
"name": [ "Erosion" ],
"desc": [ "You maintain a field of unstable time around you. When you attack targets in melee they will degrade over time." ],
"remove_message": "Your field of unstable time fades.",
"rating": "good",
"max_intensity": 1,
"show_in_info": true,
"enchantments": [ { "hit_you_effect": [ { "id": "xedra_eater_erosion_attack" } ] } ]
}
]
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
[
{
"id": "xedra_dreamer_emit_accelerated_time",
"type": "emit",
"field": "fd_xedra_dreamer_accelerated_time",
"intensity": 1,
"qty": 20,
"chance": 100
},
{
"id": "emit_changeling_mist",
"type": "emit",
Expand Down
4 changes: 3 additions & 1 deletion data/mods/Xedra_Evolved/eocs/dreamsmith.json
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,9 @@
"dreamforged_tsurugi_speed",
"dreamforged_q_staff_exp",
"dreamforged_armguard_plate_gunslinger",
"dreamforged_bed_of_restful_repose"
"dreamforged_bed_of_restful_repose",
"xedra_dreamsmith_time_trap",
"xedra_dreamsmith_time_watch"
],
"type": "recipe",
"true_eocs": {
Expand Down
9 changes: 8 additions & 1 deletion data/mods/Xedra_Evolved/eocs/inventor.json
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,14 @@
{ "math": [ "dimension_difficulty_1", "+=", "5" ] },
{ "run_eocs": "EOC_INVENTOR_PROCESS_SPARKS" },
{
"u_roll_remainder": [ "rip_ticket", "inventor_warp_grenade", "inventor_portal_closer", "teleporter_inventor" ],
"u_roll_remainder": [
"rip_ticket",
"inventor_warp_grenade",
"inventor_portal_closer",
"teleporter_inventor",
"xedra_inventor_time_pierce_tool",
"xedra_inventor_damage_reversal_device"
],
"type": "recipe",
"true_eocs": [ "EOC_INVENTOR_MESSAGE_GOOD" ],
"false_eocs": {
Expand Down
18 changes: 18 additions & 0 deletions data/mods/Xedra_Evolved/eocs/item_eocs.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,23 @@
"type": "effect_on_condition",
"id": "EOC_DAGWOOD",
"effect": [ { "u_cast_spell": { "id": "cosmic_dagwood_regeneration" } } ]
},
{
"type": "effect_on_condition",
"id": "EOC_XEDRA_INVENTOR_DAMAGE_REVERSAL",
"condition": { "math": [ "u_xedra_last_damage_taken > 0" ] },
"effect": [
{
"if": { "compare_string": [ "bp_null", "u_xedra_last_damage_taken_bodypart" ] },
"then": [ { "math": [ "u_hp('ALL')+=u_xedra_last_damage_taken" ] }, { "math": [ "u_xedra_last_damage_taken=0" ] } ],
"else": [
{ "math": [ "u_hp(u_xedra_last_damage_taken_bodypart)+=u_xedra_last_damage_taken" ] },
{ "math": [ "u_pain()-=u_xedra_last_pain_taken" ] },
{ "math": [ "u_xedra_last_damage_taken=0" ] }
]
},
{ "u_message": "Your wound heals!", "type": "good" }
],
"false_effect": [ { "u_message": "You don't have a previous wound to heal.", "type": "neutral" } ]
}
]
58 changes: 58 additions & 0 deletions data/mods/Xedra_Evolved/eocs/misc_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -331,5 +331,63 @@
"required_event": "character_wakes_up",
"condition": { "u_has_effect": "effect_sleep_shield" },
"effect": [ { "u_lose_effect": "effect_sleep_shield" }, { "u_teleport": { "u_val": "SLEEP_SHIELD_location" }, "force": true } ]
},
{
"type": "effect_on_condition",
"id": "EOC_XEDRA_TRACK_LAST_HIT",
"eoc_type": "EVENT",
"required_event": "character_takes_damage",
"//": "This value is intended to be used for time magic related powers. It will get reset by their use, and should not be used for general purpose information.",
"effect": [
{ "math": [ "u_xedra_last_damage_taken=_damage" ] },
{ "math": [ "u_xedra_last_pain_taken=_pain" ] },
{
"set_string_var": { "context_val": "bodypart" },
"target_var": { "u_val": "xedra_last_damage_taken_bodypart" }
}
]
},
{
"type": "effect_on_condition",
"id": "eoc_xedra_time_freeze_character_start_activity",
"eoc_type": "EVENT",
"required_event": "character_gains_effect",
"condition": { "compare_string": [ "effect_xedra_time_freeze", { "context_val": "effect" } ] },
"//": "Activity duration doesn't truly align with time stops potentially lasting indefinitely, but players should never be time stopped longer than a day or two anyways so 200 days should be good enough. If truly important making the activity based on neither rather than time and adding a blank do_turn function should allow >200 day durations",
"effect": [
{ "u_assign_activity": "act_xedra_time_freeze", "duration": "200 days" },
{ "math": [ "u_pain_before_time_freeze", "=", "u_pain()" ] },
{ "math": [ "u_kcal_before_time_freeze", "=", "u_calories()" ] },
{ "math": [ "u_thirst_before_time_freeze", "=", "u_val('thirst')" ] },
{ "math": [ "u_blood_before_time_freeze", "=", "u_vitamin('blood')" ] },
{ "math": [ "u_redcells_before_time_freeze", "=", "u_vitamin('redcells')" ] },
{ "math": [ "u_rad_before_time_freeze", "=", "u_val('rad')" ] }
]
},
{
"type": "effect_on_condition",
"id": "eoc_xedra_time_freeze_character_end_activity",
"eoc_type": "EVENT",
"required_event": "character_loses_effect",
"condition": { "compare_string": [ "effect_xedra_time_freeze", { "context_val": "effect" } ] },
"effect": [
"u_cancel_activity",
{ "math": [ "u_pain()", "=", "u_pain_before_time_freeze" ] },
{ "math": [ "u_calories()", "=", "u_kcal_before_time_freeze" ] },
{ "math": [ "u_val('thirst')", "=", "u_thirst_before_time_freeze" ] },
{ "math": [ "u_vitamin('blood')", "=", "u_blood_before_time_freeze" ] },
{ "math": [ "u_vitamin('redcells')", "=", "u_redcells_before_time_freeze" ] },
{ "math": [ "u_val('rad')", "=", "u_rad_before_time_freeze" ] }
]
},
{
"id": "act_xedra_time_freeze",
"type": "activity_type",
"activity_level": "NO_EXERCISE",
"verb": "frozen in time",
"based_on": "time",
"interruptable": false,
"interruptable_with_kb": false,
"can_resume": false
}
]
8 changes: 6 additions & 2 deletions data/mods/Xedra_Evolved/eocs/spell_learning_eoc.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@
"spell_speed_wonder",
"spell_weak",
"spell_unbreakable",
"point_blank"
"point_blank",
"xedra_eater_stabilize_reality",
"xedra_eater_erosion"
],
"target_var": { "var_val": "random_eater_spell" }
}
Expand Down Expand Up @@ -139,7 +141,9 @@
"spell_ethereal_wings",
"spell_karma_arms",
"spell_stalker_eyes",
"spell_devil_tail"
"spell_devil_tail",
"xedra_dreamer_time_bubble",
"xedra_dreamer_generate_accelerated_time"
],
"target_var": { "var_val": "random_dreamer_spell" }
}
Expand Down
37 changes: 37 additions & 0 deletions data/mods/Xedra_Evolved/field_type.json
Original file line number Diff line number Diff line change
Expand Up @@ -253,5 +253,42 @@
"display_items": false,
"display_field": true,
"looks_like": "fd_smoke"
},
{
"id": "fd_frozen_time",
"type": "field_type",
"intensity_levels": [ { "name": "frozen time", "sym": "O", "color": "light_gray", "transparent": true, "move_cost": -1000 } ],
"priority": 100,
"display_items": true,
"display_field": true,
"description_affix": "in",
"half_life": "1 seconds",
"linear_half_life": true,
"bash": { "str_min": 10000, "sound_vol": 0, "sound_fail_vol": 0, "msg_success": "Your strength is stronger than time itself!" },
"immunity_data": { "flags": [ "STABILIZED_TIMELINE" ] }
},
{
"id": "fd_xedra_dreamer_accelerated_time",
"type": "field_type",
"intensity_levels": [
{
"name": "accelerated time",
"sym": "o",
"color": "light_gray",
"transparent": true,
"effects": [
{
"effect_id": "effect_xedra_dreamer_accelerated_time",
"min_duration": "2 seconds",
"max_duration": "2 seconds",
"intensity": 1
}
]
}
],
"priority": 50,
"display_items": true,
"description_affix": "in",
"half_life": "2 seconds"
}
]
5 changes: 5 additions & 0 deletions data/mods/Xedra_Evolved/flags.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,10 @@
{
"id": "EVIL_EYE_IMMUNE_MONSTER",
"type": "monster_flag"
},
{
"id": "STABILIZED_TIMELINE",
"type": "json_flag",
"info": "You are immune to adverse affects on your timeline."
}
]
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@
"subtype": "distribution",
"entries": [
{ "item": "mirror_artifact", "prob": 50 },
{ "item": "artifact_amber", "prob": 50 },
{ "item": "artifact_sapient_light", "prob": 50 },
{ "item": "artifact_bubble", "prob": 50 },
{ "item": "artifact_ophanim", "prob": 50 },
Expand All @@ -128,6 +129,6 @@
"type": "item_group",
"id": "xe_dreamer_spell_tier4",
"subtype": "distribution",
"entries": [ { "item": "artifact_karma_arms", "prob": 50 } ]
"entries": [ { "item": "artifact_karma_arms", "prob": 50 }, { "item": "artifact_dreamer_accelerated_time", "prob": 50 } ]
}
]
9 changes: 7 additions & 2 deletions data/mods/Xedra_Evolved/itemgroups/spell_artifacts/eater.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,18 @@
{ "item": "artifact_skull", "prob": 100 },
{ "item": "artifact_eye_left", "prob": 50 },
{ "item": "eater_book_artifact", "prob": 50 },
{ "item": "artifact_muscle", "prob": 50 }
{ "item": "artifact_muscle", "prob": 50 },
{ "item": "artifact_anchor", "prob": 50 }
]
},
{
"type": "item_group",
"id": "xe_eater_spell_tier4",
"subtype": "distribution",
"entries": [ { "item": "artifact_eye_right", "prob": 100 }, { "item": "ring_artifact", "prob": 50 } ]
"entries": [
{ "item": "artifact_eye_right", "prob": 100 },
{ "item": "ring_artifact", "prob": 50 },
{ "item": "artifact_sand", "prob": 50 }
]
}
]
12 changes: 12 additions & 0 deletions data/mods/Xedra_Evolved/items/ammo.json
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,17 @@
"ammo_type": "glamour_charge",
"color": "magenta",
"flags": [ "ZERO_WEIGHT" ]
},
{
"id": "xedra_time_charge",
"type": "AMMO",
"name": { "str_sp": "collected time" },
"description": "Stored time.",
"price": "10 USD",
"price_postapoc": "10 USD",
"symbol": "=",
"ammo_type": "xedra_time_charge",
"color": "light_gray",
"flags": [ "ZERO_WEIGHT" ]
}
]
6 changes: 6 additions & 0 deletions data/mods/Xedra_Evolved/items/ammo_type.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@
"name": "glamour",
"default": "glamour_charge"
},
{
"type": "ammunition_type",
"id": "xedra_time_charge",
"name": "collected time",
"default": "xedra_time_charge"
},
{
"type": "ammunition_type",
"id": "9x21mm",
Expand Down
Loading
Loading