Skip to content

Commit faf0b23

Browse files
[Xedra Evolved] Lilin use ruach as their energy_source (#82356)
1 parent 950e07e commit faf0b23

File tree

3 files changed

+106
-209
lines changed

3 files changed

+106
-209
lines changed

data/mods/Xedra_Evolved/jmath.json

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -302,13 +302,6 @@
302302
"num_args": 0,
303303
"return": "1 - min( ( (u_has_trait('LILIN_RUACH_EFFICIENCY') * 0.15) + (u_has_trait('LILIN_RUACH_EFFICIENCY_UPGRADE') * 0.15) + ( u_has_trait('LILIN_RUACH_EFFICIENCY_UPGRADE') * max( ( (u_vitamin('lilin_ruach_vitamin') - 3500 ) / 12000 ), 0) ) ), 0.33)"
304304
},
305-
{
306-
"type": "jmath_function",
307-
"id": "lilin_has_ruach_efficiency_beta",
308-
"//": "For use when the lilit is the beta talker of the spell EoC, such as when it's targeting someone else",
309-
"num_args": 0,
310-
"return": "1 - min( ( (n_has_trait('LILIN_RUACH_EFFICIENCY') * 0.15) + (n_has_trait('LILIN_RUACH_EFFICIENCY_UPGRADE') * 0.15) + ( n_has_trait('LILIN_RUACH_EFFICIENCY_UPGRADE') * max( ( (n_vitamin('lilin_ruach_vitamin') - 3500 ) / 12000 ), 0) ) ), 0.33)"
311-
},
312305
{
313306
"type": "jmath_function",
314307
"id": "bloodthorn_druid_traits_sum",

data/mods/Xedra_Evolved/spells/lilin_spell_eocs.json

Lines changed: 68 additions & 177 deletions
Original file line numberDiff line numberDiff line change
@@ -378,84 +378,32 @@
378378
},
379379
{
380380
"type": "effect_on_condition",
381-
"id": "EOC_LILIN_EVIL_EYE",
382-
"condition": { "math": [ "n_vitamin('lilin_ruach_vitamin') >= 60 * lilin_has_ruach_efficiency_beta()" ] },
381+
"id": "EOC_LILIN_BLINDING_TARGET",
382+
"condition": {
383+
"or": [ { "and": [ "u_is_outside", { "math": [ "n_lilit_is_in_civilization", "==", "0" ] } ] }, { "not": "u_is_outside" } ]
384+
},
383385
"effect": [
384-
{ "math": [ "n_vitamin('lilin_ruach_vitamin')", "-=", "60 * lilin_has_ruach_efficiency_beta()" ] },
385386
{
386-
"npc_message": "You glare balefully at <u_name> and project all of your malice into your gaze.",
387-
"type": "neutral"
387+
"u_add_effect": "blind",
388+
"duration": {
389+
"math": [
390+
"rng( ( (n_vitamin('lilin_ruach_vitamin') * 8) * (n_vitamin('lilin_ruach_vitamin') * 0.03) * (n_has_trait('THRESH_LILIN') + 1) ),( (n_vitamin('lilin_ruach_vitamin') * 24) * (n_vitamin('lilin_ruach_vitamin') * 0.075) * (n_has_trait('THRESH_LILIN') + 1) ) )"
391+
]
392+
}
388393
},
389-
{
390-
"u_add_effect": "effect_evil_eye",
391-
"duration": [
392-
{
393-
"math": [
394-
"10 + ( (u_vitamin('lilin_ruach_vitamin') * 0.08) * ((u_has_trait('LILIN_LIMB_SCORE_BONUSES_AT_NIGHT') * 0.5) + 1) * ((u_has_trait('LILIN_NIGHT_VISION') * 0.3) + 1) )"
395-
]
396-
},
397-
{
398-
"math": [
399-
"50 + ( (u_vitamin('lilin_ruach_vitamin') * 0.19) * ((u_has_trait('LILIN_LIMB_SCORE_BONUSES_AT_NIGHT') * 0.5) + 1) * ((u_has_trait('LILIN_NIGHT_VISION') * 0.3) + 1) )"
400-
]
401-
}
402-
]
403-
}
394+
{ "npc_message": "<u_name>'s eyes film over with darkness.", "type": "good" }
404395
],
405-
"false_effect": { "npc_message": "You don't have enough ruach for your malice to affect your target.", "type": "bad" }
406-
},
407-
{
408-
"type": "effect_on_condition",
409-
"id": "EOC_LILIN_BLINDING_TARGET",
410-
"condition": { "math": [ "n_vitamin('lilin_ruach_vitamin')", ">=", "120 * lilin_has_ruach_efficiency_beta()" ] },
411-
"effect": [
412-
{ "math": [ "n_vitamin('lilin_ruach_vitamin')", "-=", "120 * lilin_has_ruach_efficiency_beta()" ] },
396+
"false_effect": [
413397
{
414-
"run_eocs": [
415-
{
416-
"id": "EOC_LILIN_BLINDING_TARGET_2",
417-
"condition": {
418-
"and": [
419-
{ "not": "is_day" },
420-
{
421-
"or": [ { "and": [ "u_is_outside", { "math": [ "n_lilit_is_in_civilization", "==", "0" ] } ] }, { "not": "u_is_outside" } ]
422-
}
423-
]
424-
},
425-
"effect": [
426-
{
427-
"u_add_effect": "blind",
428-
"duration": {
429-
"math": [
430-
"rng( ( (n_vitamin('lilin_ruach_vitamin') * 8) * (n_vitamin('lilin_ruach_vitamin') * 0.03) * (n_has_trait('THRESH_LILIN') + 1) ),( (n_vitamin('lilin_ruach_vitamin') * 24) * (n_vitamin('lilin_ruach_vitamin') * 0.075) * (n_has_trait('THRESH_LILIN') + 1) ) )"
431-
]
432-
}
433-
},
434-
{ "npc_message": "<u_name>'s eyes film over with darkness.", "type": "good" }
435-
],
436-
"false_effect": [
437-
{
438-
"if": "is_day",
439-
"then": { "npc_message": "You cannot call up the darkness while the sun is in the sky.", "type": "bad" },
440-
"else": {
441-
"if": { "and": [ "u_is_outside", { "math": [ "n_lilit_is_in_civilization", "==", "1" ] } ] },
442-
"then": { "npc_message": "You cannot call up the darkness outdoors in a city.", "type": "bad" },
443-
"else": [ ]
444-
}
445-
}
446-
]
447-
}
448-
]
398+
"if": { "and": [ "u_is_outside", { "math": [ "n_lilit_is_in_civilization", "==", "1" ] } ] },
399+
"then": { "npc_message": "You cannot call up the darkness outdoors in a city.", "type": "bad" }
449400
}
450-
],
451-
"false_effect": { "npc_message": "You don't have enough ruach to call the darkness on your target.", "type": "bad" }
401+
]
452402
},
453403
{
454404
"type": "effect_on_condition",
455405
"id": "EOC_LILIN_MESMERIZE_TARGET",
456-
"condition": { "math": [ "n_vitamin('lilin_ruach_vitamin')", ">=", "320 * lilin_has_ruach_efficiency_beta()" ] },
457406
"effect": [
458-
{ "math": [ "n_vitamin('lilin_ruach_vitamin')", "-=", "320 * lilin_has_ruach_efficiency_beta()" ] },
459407
{
460408
"math": [
461409
"u_lilin_mesmerize_duration",
@@ -553,52 +501,40 @@
553501
{
554502
"type": "effect_on_condition",
555503
"id": "EOC_LILIN_AOE_DAZE",
556-
"condition": { "math": [ "u_vitamin('lilin_ruach_vitamin') >= 160 * lilin_has_ruach_efficiency()" ] },
557504
"effect": [
558-
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "160 * lilin_has_ruach_efficiency()" ] },
559505
{ "u_cast_spell": { "id": "lilin_aoe_daze_spell_real", "hit_self": false } },
560506
{ "u_make_sound": "You let out a piercing cry!", "type": "alert", "volume": 20 },
561-
{ "u_make_sound": "You let out a piercing cry!", "type": "alert", "volume": 20 },
507+
{ "u_make_sound": "You let out a piercing cry!", "type": "alert", "volume": 35 },
562508
{ "u_message": "You let out a piercing cry!", "type": "neutral" }
563-
],
564-
"false_effect": { "u_message": "You don't have enough ruach to let out the night-cry!", "type": "bad" }
509+
]
565510
},
566511
{
567512
"type": "effect_on_condition",
568513
"id": "EOC_LILIN_AOE_LINE_DISEASE",
569514
"condition": "has_alpha",
570515
"effect": [
516+
{ "npc_message": "You summon a wind filled with pestilence.", "type": "neutral" },
571517
{
572-
"if": { "math": [ "n_vitamin('lilin_ruach_vitamin') >= 240" ] },
573-
"then": [
574-
{ "math": [ "n_vitamin('lilin_ruach_vitamin')", "-=", "240" ] },
575-
{ "npc_message": "You summon a wind filled with pestilence.", "type": "neutral" },
518+
"u_add_effect": "effect_lilin_supernatural_disease",
519+
"duration": [
576520
{
577-
"u_add_effect": "effect_lilin_supernatural_disease",
578-
"duration": [
579-
{
580-
"math": [
581-
"1 + ( (n_vitamin('lilin_ruach_vitamin') * 0.09) * ( (n_has_trait('INFIMMUNE') * 0.25) + 1) * ( (n_has_trait('DISIMMUNE') * 0.25) + 1) * ( (n_has_trait('LILIN_DISEASE_DAMAGE_STRIKES') * 0.35) + 1) )"
582-
]
583-
},
584-
{
585-
"math": [
586-
"15 + ( (n_vitamin('lilin_ruach_vitamin') * 0.24) * ( (n_has_trait('INFIMMUNE') * 0.25) + 1) * ( (n_has_trait('DISIMMUNE') * 0.25) + 1) * ( (n_has_trait('LILIN_DISEASE_DAMAGE_STRIKES') * 0.35) + 1) )"
587-
]
588-
}
521+
"math": [
522+
"1 + ( (n_vitamin('lilin_ruach_vitamin') * 0.09) * ( (n_has_trait('INFIMMUNE') * 0.25) + 1) * ( (n_has_trait('DISIMMUNE') * 0.25) + 1) * ( (n_has_trait('LILIN_DISEASE_DAMAGE_STRIKES') * 0.35) + 1) )"
523+
]
524+
},
525+
{
526+
"math": [
527+
"15 + ( (n_vitamin('lilin_ruach_vitamin') * 0.24) * ( (n_has_trait('INFIMMUNE') * 0.25) + 1) * ( (n_has_trait('DISIMMUNE') * 0.25) + 1) * ( (n_has_trait('LILIN_DISEASE_DAMAGE_STRIKES') * 0.35) + 1) )"
589528
]
590529
}
591-
],
592-
"else": [ { "npc_message": "You don't have enough ruach to summon the miasma!", "type": "bad" } ]
530+
]
593531
}
594532
]
595533
},
596534
{
597535
"type": "effect_on_condition",
598536
"id": "EOC_LILIN_DISEASE_ENHANCEMENT_DAMAGE",
599-
"condition": { "math": [ "n_vitamin('lilin_ruach_vitamin') >= 180 * lilin_has_ruach_efficiency_beta()" ] },
600537
"effect": [
601-
{ "math": [ "n_vitamin('lilin_ruach_vitamin')", "-=", "180 * lilin_has_ruach_efficiency_beta()" ] },
602538
{ "npc_message": "You infuse your ruach into the plague-infected <u_name>.", "type": "neutral" },
603539
{
604540
"u_add_effect": "effect_lilin_supernatural_disease_focused",
@@ -656,55 +592,39 @@
656592
}
657593
]
658594
}
659-
],
660-
"false_effect": { "npc_message": "You don't have enough ruach to enhance the miasma around <u_name>!", "type": "bad" }
595+
]
661596
},
662597
{
663598
"type": "effect_on_condition",
664599
"id": "EOC_LILIN_AVOID_SLEEP",
665-
"condition": { "math": [ "u_vitamin('lilin_ruach_vitamin') >= 300 * lilin_has_ruach_efficiency()" ] },
666600
"effect": [
667-
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "300 * lilin_has_ruach_efficiency()" ] },
668601
{ "math": [ "u_val('sleepiness')", "-=", "rng(200,350)" ] },
669602
{ "if": { "math": [ "u_val('sleepiness') < 0" ] }, "then": { "math": [ "u_val('sleepiness') = 0" ] } },
670603
{ "math": [ "u_val('sleep_deprivation') = 0" ] },
671604
{ "u_message": "As a cool breeze touches your skin, you feel much more awake.", "type": "good" }
672-
],
673-
"false_effect": [ { "u_message": "You don't have enough ruach to spare any to alleviate your tiredness.", "type": "bad" } ]
605+
]
674606
},
675607
{
676608
"type": "effect_on_condition",
677609
"id": "EOC_LILIN_CHANGE_WEATHER_DENSE_FOG",
678610
"condition": { "math": [ "magic_weather_dense_fog != 1" ] },
679611
"effect": [
612+
{ "u_message": "A thick fog begins to rise.", "type": "neutral" },
613+
{ "math": [ "magic_weather_dense_fog = 1" ] },
614+
{ "u_add_effect": "effect_controlling_weather_fog", "duration": "6 hours" },
615+
{ "run_eocs": "EOC_CALL_NEXT_WEATHER", "time_in_future": [ "15 seconds", "45 seconds" ] },
680616
{
681-
"run_eocs": [
617+
"run_eocs": "EOC_LILIN_CHANGE_WEATHER_DENSE_FOG_REMOVE",
618+
"time_in_future": [
682619
{
683-
"id": "EOC_LILIN_CHANGE_WEATHER_DENSE_FOG_2",
684-
"condition": { "math": [ "u_vitamin('lilin_ruach_vitamin') >= 240 * lilin_has_ruach_efficiency()" ] },
685-
"effect": [
686-
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "240 * lilin_has_ruach_efficiency()" ] },
687-
{ "u_message": "A thick fog begins to rise.", "type": "neutral" },
688-
{ "math": [ "magic_weather_dense_fog = 1" ] },
689-
{ "u_add_effect": "effect_controlling_weather_fog", "duration": "6 hours" },
690-
{ "run_eocs": "EOC_CALL_NEXT_WEATHER", "time_in_future": [ "15 seconds", "45 seconds" ] },
691-
{
692-
"run_eocs": "EOC_LILIN_CHANGE_WEATHER_DENSE_FOG_REMOVE",
693-
"time_in_future": [
694-
{
695-
"math": [
696-
"450 + (u_vitamin('lilin_ruach_vitamin') / 10) + ( ( moon_phase() > 4 ? moon_phase() - 4 : (moon_phase() - 4) * -1) * 360)"
697-
]
698-
},
699-
{
700-
"math": [
701-
"1800 + (u_vitamin('lilin_ruach_vitamin') / 3) + ( ( moon_phase() > 4 ? moon_phase() - 4 : (moon_phase() - 4) * -1) * 600)"
702-
]
703-
}
704-
]
705-
}
706-
],
707-
"false_effect": [ { "u_message": "You don't have enough ruach to call a fog.", "type": "bad" } ]
620+
"math": [
621+
"450 + (u_vitamin('lilin_ruach_vitamin') / 10) + ( ( moon_phase() > 4 ? moon_phase() - 4 : (moon_phase() - 4) * -1) * 360)"
622+
]
623+
},
624+
{
625+
"math": [
626+
"1800 + (u_vitamin('lilin_ruach_vitamin') / 3) + ( ( moon_phase() > 4 ? moon_phase() - 4 : (moon_phase() - 4) * -1) * 600)"
627+
]
708628
}
709629
]
710630
}
@@ -727,24 +647,6 @@
727647
{ "math": [ "magic_weather_dense_fog = 0" ] }
728648
]
729649
},
730-
{
731-
"type": "effect_on_condition",
732-
"id": "EOC_LILIN_SPEED_BOOST",
733-
"condition": { "math": [ "u_vitamin('lilin_ruach_vitamin') >= 360 * lilin_has_ruach_efficiency()" ] },
734-
"effect": [
735-
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "360 * lilin_has_ruach_efficiency()" ] },
736-
{
737-
"u_add_effect": "effect_lilin_speed_boost",
738-
"duration": {
739-
"math": [
740-
"(15 + (u_has_trait('THRESH_LILIN') * 15) + (u_vitamin('lilin_ruach_vitamin') / 24)) * (u_effect_intensity('effect_lilin_attribute_bonuses') > 0 ? 1.25 : 1) * (u_effect_intensity('effect_lilin_limb_score_bonuses_at_night') > 0 ? 1.25 : 1)"
741-
]
742-
}
743-
},
744-
{ "u_message": "The world around you slows down immensely.", "type": "good" }
745-
],
746-
"false_effect": [ { "u_message": "You don't have enough ruach to reap the whirlwind.", "type": "bad" } ]
747-
},
748650
{
749651
"type": "effect_on_condition",
750652
"id": "EOC_LILIN_SPEED_BOOST_UNCANNY_DODGE_ON",
@@ -783,42 +685,31 @@
783685
]
784686
},
785687
"effect": [
688+
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "1200 * lilin_has_ruach_efficiency()" ] },
689+
{ "npc_message": "Your wounded flesh knits together in moments.", "type": "neutral" },
786690
{
787-
"run_eocs": [
788-
{
789-
"id": "EOC_LILIN_INSTANT_HEAL_2",
790-
"condition": { "math": [ "u_vitamin('lilin_ruach_vitamin') >= 1200 * lilin_has_ruach_efficiency()" ] },
791-
"effect": [
792-
{ "math": [ "u_vitamin('lilin_ruach_vitamin')", "-=", "1200 * lilin_has_ruach_efficiency()" ] },
793-
{ "npc_message": "Your wounded flesh knits together in moments.", "type": "neutral" },
794-
{
795-
"if": { "math": [ "u_hp('torso') < u_hp_max('torso')" ] },
796-
"then": { "math": [ "u_hp('torso')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
797-
},
798-
{
799-
"if": { "math": [ "u_hp('head') < u_hp_max('head')" ] },
800-
"then": { "math": [ "u_hp('head')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
801-
},
802-
{
803-
"if": { "math": [ "u_hp('arm_l') < u_hp_max('arm_l')" ] },
804-
"then": { "math": [ "u_hp('arm_l')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
805-
},
806-
{
807-
"if": { "math": [ "u_hp('arm_r') < u_hp_max('arm_r')" ] },
808-
"then": { "math": [ "u_hp('arm_r')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
809-
},
810-
{
811-
"if": { "math": [ "u_hp('leg_l') < u_hp_max('leg_l')" ] },
812-
"then": { "math": [ "u_hp('leg_l')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
813-
},
814-
{
815-
"if": { "math": [ "u_hp('leg_r') < u_hp_max('leg_r')" ] },
816-
"then": { "math": [ "u_hp('leg_r')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
817-
}
818-
],
819-
"false_effect": { "u_message": "You don't have enough ruach to heal yourself!", "type": "bad" }
820-
}
821-
]
691+
"if": { "math": [ "u_hp('torso') < u_hp_max('torso')" ] },
692+
"then": { "math": [ "u_hp('torso')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
693+
},
694+
{
695+
"if": { "math": [ "u_hp('head') < u_hp_max('head')" ] },
696+
"then": { "math": [ "u_hp('head')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
697+
},
698+
{
699+
"if": { "math": [ "u_hp('arm_l') < u_hp_max('arm_l')" ] },
700+
"then": { "math": [ "u_hp('arm_l')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
701+
},
702+
{
703+
"if": { "math": [ "u_hp('arm_r') < u_hp_max('arm_r')" ] },
704+
"then": { "math": [ "u_hp('arm_r')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
705+
},
706+
{
707+
"if": { "math": [ "u_hp('leg_l') < u_hp_max('leg_l')" ] },
708+
"then": { "math": [ "u_hp('leg_l')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
709+
},
710+
{
711+
"if": { "math": [ "u_hp('leg_r') < u_hp_max('leg_r')" ] },
712+
"then": { "math": [ "u_hp('leg_r')", "+=", "25 * min( (u_vitamin('lilin_ruach_vitamin') / 4000),1)" ] }
822713
}
823714
],
824715
"false_effect": [

0 commit comments

Comments
 (0)