v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Mythical substance/script

From Dwarf Fortress Wiki
< Mythical substance
Revision as of 17:02, 28 November 2024 by DPhKraken (talk | contribs) (Mythical healing generation script)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
 1materials.mythical_healing.default=function()
 2    local name_str = pick_random(mythical_healing_adjectives)
 3    local noun=""
 4    if one_in(2) then
 5        noun=pick_random(mythical_healing_liquids)
 6        name_str=name_str.." "..noun
 7        lines[#lines+1]="[STATE_NAME_ADJ:LIQUID:"..name_str.."]"
 8        lines[#lines+1]="[STATE_NAME_ADJ:ALL_SOLID:frozen ]"..name_str.."]"
 9        lines[#lines+1]="[MELTING_POINT:9900]"
10    else
11        noun=pick_random(mythical_healing_globs)
12        name_str=name_str.." "..noun
13        lines[#lines+1]="[STATE_NAME_ADJ:LIQUID:molten "..name_str.."]"
14        lines[#lines+1]="[STATE_NAME_ADJ:ALL_SOLID:]"..name_str.."]"
15        lines[#lines+1]="[MELTING_POINT:10200]"
16    end
17    lines[#lines+1]="[STATE_NAME_ADJ:GAS:boiling "..name_str.."]"
18    lines[#lines+1]="[BOILING_POINT:12000]"
19    populate_monotone_color_pattern()
20    local col_pat=pick_random(monotone_color_pattern)
21    if col_pat then
22        local col = world.descriptor.color[col_pat.color]
23        lines[#lines+1]="[STATE_COLOR:ALL:"..col.token.."]"
24        lines[#lines+1]="[DISPLAY_COLOR:"..col.col_f..":0:"..col.col_br
25    else
26        lines[#lines+1]="[DISPLAY_COLOR:1:0:1]"
27    end
28    lines[#lines+1]="[MATERIAL_VALUE:1]"
29    lines[#lines+1]="[SPEC_HEAT:4181]"
30    lines[#lines+1]="[IGNITE_POINT:NONE]"
31    lines[#lines+1]="[HEATDAM_POINT:NONE]"
32    lines[#lines+1]="[COLDDAM_POINT:NONE]"
33    lines[#lines+1]="[MAT_FIXED_TEMP:NONE]"
34    lines[#lines+1]="[MOLAR_MASS:1]"
35    
36    lines[#lines+1]="[EDIBLE_VERMIN]"
37    lines[#lines+1]="[EDIBLE_RAW]"
38    lines[#lines+1]="[EDIBLE_COOKED]"
39    lines[#lines+1]="[DO_NOT_CLEAN_GLOB]"
40    if mythical_healing_alcohols[noun] then -- i'm sure you can think of some alcoholic globs if you want
41        lines[#lines+1]="[ALCOHOL]"
42    end
43    lines[#lines+1]="[ENTERS_BLOOD]"
44    lines[#lines+1]="    [SYNDROME]"
45    lines[#lines+1]="        [SYN_NAME:"..name_str.." effect]"
46    lines[#lines+1]="        [SYN_AFFECTED_CLASS:GENERAL_POISON]"
47    lines[#lines+1]="        [SYN_INGESTED]"
48    --[[ all of this was in a for loop with individual creature effects listed out but (I *think*) the design purpose for that is fulfilled
49         by having it all out in Lua anyway, so I'm just going to hardcode it here and if users wanna mod it they can add their own function]]
50    lines[#lines+1]="        [CE_REGROW_PARTS:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
51    lines[#lines+1]="        [CE_CLOSE_OPEN_WOUNDS:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
52    lines[#lines+1]="        [CE_HEAL_TISSUES:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
53    lines[#lines+1]="        [CE_HEAL_NERVES:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
54    lines[#lines+1]="        [CE_STOP_BLEEDING:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
55    lines[#lines+1]="        [CE_REDUCE_PAIN:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
56    lines[#lines+1]="        [CE_REDUCE_DIZZINESS:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT]"
57    lines[#lines+1]="        [CE_REDUCE_NAUSEA:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT]"
58    lines[#lines+1]="        [CE_REDUCE_SWELLING:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
59    lines[#lines+1]="        [CE_CURE_INFECTION:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
60    lines[#lines+1]="        [CE_REDUCE_PARALYSIS:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT:BP:BY_CATEGORY:ALL:ALL]"
61    lines[#lines+1]="        [CE_REDUCE_FEVER:SEV:100:PROB:100:START:0:PEAK:0:END:12:ABRUPT]"
62    return {mat=lines,weight=1}
63end