Skip to content

Commit 2bc8f59

Browse files
committed
Even carefuller with Jinja2...
1 parent 14460ba commit 2bc8f59

File tree

5 files changed

+214
-1
lines changed

5 files changed

+214
-1
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
perlin-noise == 1.12
22
kaitaistruct == 0.9
33
matplotlib == 3.5.3
4-
Jinja2 == 3.1.0
4+
Jinja2 == 3.1.3
55
jinja-comprehensions == 0.1.1
66
numpy == 1.22.4

test/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
/output/*
2+
/test_jinja/output/*

test/test_jinja.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import unittest
2+
3+
from jinja import jinja
4+
5+
6+
class TestJinja(unittest.TestCase):
7+
def test_jinja(self):
8+
jinja('test_jinja', 'input', 'output', None, 'each', None, dict())
9+
10+
11+
if __name__ == '__main__':
12+
unittest.main()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
sos;stn;ctn;ctn_suffix;a;csn;scale;mc;ct;ft;v;int;req_lvl;gold;dur_min;dmg_m;dmg_r;dmg_c;abf_m;abf_r;abf_c;wpn_dmg_min;wpn_dmg_max;spl_dmg_min;spl_dmg_max;armor;life;effect_script;end_script;test_only;comment
2+
spell;phrak;phrak;;a;Phrak;0.75;nm;an;std;v;;1;30;6;0.85;;;;;;;;;;2;0.4;;;;
3+
spell;phrak_piercer;phrak_piercer;;a;Phrak Piercer;0.75;nm;an;std;v;;2;48;6;;;0.8;;;;;;3;5;2;0.4;;;;
4+
scroll;phrak_ballista;phrak_piercer_boss_01;;a;Phrak Ballista;1;nm;an;mb;v;;3;12;14;;;1;;;;;;3;5;2;1.2;;;;
Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
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

Comments
 (0)