|
| 1 | +[t:template,n:{{sos}}_summon_{{stn}}] { specializes = {{sos}}_summon_{{stn}}_base; } |
| 2 | +[t:template,n:{{sos}}_summon_{{stn}}_base] |
| 3 | +{ |
| 4 | + specializes = base_{{sos}}_sumcol_{{mc}}{% if ft == 'ex' %}_explosive{% elif 'dop' in ft.split('-') %}_doppelganger{% endif %}; |
| 5 | + |
| 6 | + doc = "{{sos}} Summon {{csn}}"; |
| 7 | + [aspect] |
| 8 | + { |
| 9 | + gold_value = {{gold}}; |
| 10 | + } |
| 11 | + [common] |
| 12 | + { |
| 13 | + screen_name = "Summon {{csn}}"; |
| 14 | + description = "Summons {{ [a, csn] | join(' ') | trim }} to guard the Caster."; |
| 15 | + {% if test_only %} |
| 16 | + is_pcontent_allowed = false; |
| 17 | + {% endif %} |
| 18 | + } |
| 19 | + [gui] |
| 20 | + { |
| 21 | + {% set x_infix = '-x-' + x if x else '' %} |
| 22 | + active_icon = b_gui_ig_i_ic_{{ sos[:2] }}_sumcol{{x_infix}}-{{mc}}-{{ct}}-{{ft}}-{{v}}-{{test_only or stn}}; |
| 23 | + inventory_icon =b_gui_ig_i_ic_{{ sos[:2] }}_sumcol{{x_infix}}-{{mc}}-{{ct}}-{{ft}}-{{v}}-{{test_only or stn}}-inv; |
| 24 | + } |
| 25 | + [spell_summon{% if ft == 'ex' %}_explosive{% elif 'dop' in ft.split('-') %}_doppelganger{% endif %}] |
| 26 | + { |
| 27 | + template_name = {{ctn}}{% if ctn_suffix %}_{{ctn_suffix}}{% endif %}_summon; |
| 28 | + script_params = "[scale({{scale | float}})]"; |
| 29 | + {% if effect_script %} |
| 30 | + effect_script = "{{effect_script}}"; |
| 31 | + {% endif %} |
| 32 | + {% if end_script %} |
| 33 | + end_script = "{{end_script}}"; |
| 34 | + {% endif %} |
| 35 | + {% if ft == "mb-dop" %} |
| 36 | + dop_effect_script = "doppelganger_glow_boss"; |
| 37 | + {% endif %} |
| 38 | + } |
| 39 | + [magic] |
| 40 | + { |
| 41 | + effect_duration = {{dur_min * 60}}; |
| 42 | + mana_cost = 0; |
| 43 | + mana_cost_modifier = (#magic+1)*({% if 'st' in ft.split('-') %}3{% elif ft == 'ex' %}1{% elif int %}18{% else %}15{% endif %}+{% if 'mb' in ft.split('-') %}1{% else %}0{% endif %}); |
| 44 | + required_level = {{req_lvl}}; |
| 45 | + max_level = {{ req_lvl + 20 }}; |
| 46 | + |
| 47 | + [enchantments] |
| 48 | + { |
| 49 | + {% if dmg_m != '' %} |
| 50 | + [*] |
| 51 | + { |
| 52 | + alteration = alter_melee_damage_min; |
| 53 | + duration = #infinite; |
| 54 | + value = (((((((#magic*4.2)*{{dmg_m | float}})*{{'%0.3g' | format(abf_m | sqrt_if(vanilla) if abf_m is number else 1)}})*{% if stable %}1.0{% else %}0.9{% endif %}) - #melee_damage_min) - #base_damage) - {{wpn_dmg_min | float}}); |
| 55 | + } |
| 56 | + [*] |
| 57 | + { |
| 58 | + alteration = alter_melee_damage_max; |
| 59 | + duration = #infinite; |
| 60 | + value = (((((((#magic*4.2)*{{dmg_m | float}})*{{'%0.3g' | format(abf_m | sqrt_if(vanilla) if abf_m is number else 1)}})*{% if stable %}1.0{% else %}1.1{% endif %}) - #melee_damage_max) - #base_damage) - {{wpn_dmg_max | float}}); |
| 61 | + } |
| 62 | + {% endif %} |
| 63 | + {% if dmg_r != '' %} |
| 64 | + [*] |
| 65 | + { |
| 66 | + alteration = alter_ranged_damage_min; |
| 67 | + duration = #infinite; |
| 68 | + value = ((((((#magic*4.2)*{{dmg_r | float}})*{{'%0.3g' | format(abf_r | sqrt_if(vanilla) if abf_r is number else 1)}})*{% if stable %}1.0{% else %}0.9{% endif %}) - #ranged_damage_min) - {{wpn_dmg_min | float}}); |
| 69 | + } |
| 70 | + [*] |
| 71 | + { |
| 72 | + alteration = alter_ranged_damage_max; |
| 73 | + duration = #infinite; |
| 74 | + value = ((((((#magic*4.2)*{{dmg_r | float}})*{{'%0.3g' | format(abf_r | sqrt_if(vanilla) if abf_r is number else 1)}})*{% if stable %}1.0{% else %}1.1{% endif %}) - #ranged_damage_max) - {{wpn_dmg_max | float}}); |
| 75 | + } |
| 76 | + {% endif %} |
| 77 | + {% if dmg_c != '' %} |
| 78 | + [*] |
| 79 | + { |
| 80 | + alteration = alter_cmagic_damage_min; |
| 81 | + duration = #infinite; |
| 82 | + value = ((((((#magic*4.2)*{{dmg_c | float}})*{{'%0.3g' | format(abf_c | sqrt_if(vanilla) if abf_c is number else 1)}})*{% if stable %}1.0{% else %}0.9{% endif %}) - #cmagic_damage_min) - {{spl_dmg_min | float}}); |
| 83 | + } |
| 84 | + [*] |
| 85 | + { |
| 86 | + alteration = alter_cmagic_damage_max; |
| 87 | + duration = #infinite; |
| 88 | + value = ((((((#magic*4.2)*{{dmg_c | float}})*{{'%0.3g' | format(abf_c | sqrt_if(vanilla) if abf_c is number else 1)}})*{% if stable %}1.0{% else %}1.1{% endif %}) - #cmagic_damage_max) - {{spl_dmg_max | float}}); |
| 89 | + } |
| 90 | + {% endif %} |
| 91 | + [*] |
| 92 | + { |
| 93 | + alteration = alter_armor; |
| 94 | + duration = #infinite; |
| 95 | + {% if req_lvl <= 50 %} |
| 96 | + value = (((#magic*4.2)*{{armor | float}}) - #base_defense); |
| 97 | + {% else %} |
| 98 | + value = (((#magic*4.2)*{{armor | float}}*(1+((#spell_req_level-50)*0.015))) - #base_defense); |
| 99 | + {% endif %} |
| 100 | + } |
| 101 | + {% if 'dop' not in ft.split('-') %} |
| 102 | + [*] |
| 103 | + { |
| 104 | + alteration = alter_max_life; |
| 105 | + duration = #infinite; |
| 106 | + value = ((((#magic*12)+(#spell_req_level*12))*{{life | float}}) - #maxlife); |
| 107 | + } |
| 108 | + [*] |
| 109 | + { |
| 110 | + alteration = alter_life; |
| 111 | + duration = 1.0; |
| 112 | + value = (((#magic*12)+(#spell_req_level*12))*{{life | float}}); |
| 113 | + } |
| 114 | + {% else %} |
| 115 | + [*] |
| 116 | + { |
| 117 | + alteration = alter_max_life; |
| 118 | + duration = #infinite; |
| 119 | + value = ((#maxlife*{{life | float}}) - #maxlife); |
| 120 | + } |
| 121 | + [*] |
| 122 | + { |
| 123 | + alteration = alter_life; |
| 124 | + duration = 1.0; |
| 125 | + value = (#maxlife*{{life | float}}); |
| 126 | + } |
| 127 | + {% endif %} |
| 128 | + {% if dmg_m != '' %} |
| 129 | + [*] |
| 130 | + { |
| 131 | + alteration = alter_melee; |
| 132 | + duration = #infinite; |
| 133 | + {% if req_lvl <= 50 %} |
| 134 | + value = ((#magic*{{ '%0.5g' | format(1 - req_lvl/200) }})-#melee); |
| 135 | + {% else %} |
| 136 | + value = ((#magic*{{ '%0.5g' | format(0.75 + (req_lvl-50)/400) }})-#melee); |
| 137 | + {% endif %} |
| 138 | + } |
| 139 | + {% endif %} |
| 140 | + {% if dmg_r != '' %} |
| 141 | + [*] |
| 142 | + { |
| 143 | + alteration = alter_ranged; |
| 144 | + duration = #infinite; |
| 145 | + {% if req_lvl <= 50 %} |
| 146 | + value = ((#magic*{{ '%0.5g' | format(1 - req_lvl/200) }})-#ranged); |
| 147 | + {% else %} |
| 148 | + value = ((#magic*{{ '%0.5g' | format(0.75 + (req_lvl-50)/400) }})-#ranged); |
| 149 | + {% endif %} |
| 150 | + } |
| 151 | + {% endif %} |
| 152 | + {% if dmg_c != '' %} |
| 153 | + [*] |
| 154 | + { |
| 155 | + alteration = alter_combat_magic; |
| 156 | + duration = #infinite; |
| 157 | + {% if req_lvl <= 50 %} |
| 158 | + value = ((#magic*{{ '%0.5g' | format(1 - req_lvl/200) }})-#combat_magic_level); |
| 159 | + {% else %} |
| 160 | + value = ((#magic*{{ '%0.5g' | format(0.75 + (req_lvl-50)/400) }})-#combat_magic_level); |
| 161 | + {% endif %} |
| 162 | + } |
| 163 | + {% endif %} |
| 164 | + [*] |
| 165 | + { |
| 166 | + alteration = alter_strength; |
| 167 | + duration = #infinite; |
| 168 | + value = (((#magic*0.64)+10) - #str); |
| 169 | + } |
| 170 | + [*] |
| 171 | + { |
| 172 | + alteration = alter_dexterity; |
| 173 | + duration = #infinite; |
| 174 | + value = (((#magic*0.27)+10) - #dex); |
| 175 | + } |
| 176 | + [*] |
| 177 | + { |
| 178 | + alteration = alter_intelligence; |
| 179 | + duration = #infinite; |
| 180 | + value = (((#magic*0.09)+10) - #int); |
| 181 | + } |
| 182 | + [*] |
| 183 | + { |
| 184 | + alteration = alter_max_mana; |
| 185 | + duration = #infinite; |
| 186 | + value = ((#magic*19) - #maxmana); |
| 187 | + } |
| 188 | + [*] |
| 189 | + { |
| 190 | + alteration = alter_mana; |
| 191 | + duration = 1.0; |
| 192 | + value = (#magic*19); |
| 193 | + } |
| 194 | + } |
| 195 | + } |
| 196 | +} |
0 commit comments