Scenario generator added
This commit is contained in:
parent
13903d57e3
commit
43af744569
|
@ -0,0 +1,179 @@
|
|||
#! /usr/bin/env python3
|
||||
|
||||
from sys import argv
|
||||
|
||||
def nouveau_scenario(nom):
|
||||
functions = (
|
||||
"asgard_po",
|
||||
"asgard_npc",
|
||||
"h_9_npc",
|
||||
"h_10_npc",
|
||||
"h_11_npc",
|
||||
"h_12_npc",
|
||||
"h_13_npc",
|
||||
"h_14_npc",
|
||||
"h_15_npc",
|
||||
"h_16_npc",
|
||||
"h_17_npc",
|
||||
"h_18_npc",
|
||||
"h_19_npc",
|
||||
"h_20_npc",
|
||||
"vanaheim_po",
|
||||
"vanaheim_npc",
|
||||
"h_22_npc",
|
||||
"alfheim_po",
|
||||
"alfheim_npc",
|
||||
"h_23_npc",
|
||||
"h_24_npc",
|
||||
"midgard_po",
|
||||
"midgard_npc",
|
||||
"h_25_npc",
|
||||
"h_26_npc",
|
||||
"h_27_npc",
|
||||
"h_28_npc",
|
||||
"niflheim_po",
|
||||
"niflheim_npc",
|
||||
"h_29_npc",
|
||||
"h_30_npc",
|
||||
"jotunheim_po",
|
||||
"jotunheim_npc",
|
||||
"h_31_npc",
|
||||
"h_32_npc",
|
||||
"h_33_npc",
|
||||
"h_34_npc",
|
||||
"h_35_npc",
|
||||
"h_36_npc",
|
||||
"nidavellir_po",
|
||||
"nidavellir_npc",
|
||||
"h_37_npc",
|
||||
"h_38_npc",
|
||||
"h_39_npc",
|
||||
"h_40_npc",
|
||||
"h_41_npc",
|
||||
"muspellheim_po",
|
||||
"muspellheim_npc",
|
||||
"h_42_npc",
|
||||
"h_43_npc",
|
||||
"h_44_npc",
|
||||
"svartalfheim_po",
|
||||
"svartalfheim_npc",
|
||||
"h_45_npc",
|
||||
"h_46_npc",
|
||||
"h_47_npc",
|
||||
"h_48_npc")
|
||||
|
||||
default_content = """from idk_lib import *
|
||||
|
||||
try:
|
||||
import dlc_{0} as dlc
|
||||
spells = dlc.dlc_spells
|
||||
spells_level = dlc.dlc_spells_level
|
||||
spells_effect = dlc.dlc_spells_effect
|
||||
weapons = dlc.dlc_weapons
|
||||
armors = dlc.dlc_armors
|
||||
dlc_entities = dlc.dlc_entities
|
||||
except:
|
||||
dlc = None
|
||||
dlc_entities = ()
|
||||
|
||||
|
||||
|
||||
# Game
|
||||
def npc(data, stat, entities, identifiant):
|
||||
npc_data = (
|
||||
asgard_npc,
|
||||
vanaheim_npc,
|
||||
alfheim_npc,
|
||||
midgard_npc,
|
||||
niflheim_npc,
|
||||
jotunheim_npc,
|
||||
nidavellir_npc,
|
||||
muspellheim_npc,
|
||||
svartalfheim_npc,
|
||||
h_9_npc, h_10_npc, h_11_npc, h_12_npc, h_13_npc, h_14_npc, h_15_npc, h_16_npc, h_17_npc, h_18_npc, h_19_npc, h_20_npc,
|
||||
h_21_npc, h_22_npc,
|
||||
h_23_npc, h_24_npc,
|
||||
h_25_npc, h_26_npc, h_27_npc, h_28_npc,
|
||||
h_29_npc, h_30_npc,
|
||||
h_31_npc, h_32_npc, h_33_npc, h_34_npc, h_35_npc, h_36_npc,
|
||||
h_37_npc, h_38_npc, h_39_npc, h_40_npc, h_41_npc,
|
||||
h_42_npc, h_43_npc, h_44_npc,
|
||||
h_45_npc, h_46_npc, h_47_npc, h_48_npc)
|
||||
|
||||
|
||||
if dlc:
|
||||
event = dlc.dlc_npc(data, stat, entities, identifiant)
|
||||
if event: return "dlc", event
|
||||
|
||||
return npc_core(npc_data[data[1]], data, stat, entities, identifiant)
|
||||
|
||||
|
||||
def point_of_interest(data, stat, entities, identifiant):
|
||||
po_data = (
|
||||
asgard_po,
|
||||
vanaheim_po,
|
||||
alfheim_po,
|
||||
midgard_po,
|
||||
niflheim_po,
|
||||
jotunheim_po,
|
||||
nidavellir_po,
|
||||
muspellheim_po,
|
||||
svartalfheim_po
|
||||
)
|
||||
|
||||
coords = data[2], data[3]
|
||||
event = po_data[data[1]](coords, identifiant)
|
||||
|
||||
if not event: return [0, "Il n'y a rien à voir ici."]
|
||||
else: return event
|
||||
|
||||
|
||||
entities = asgard_entities + vanaheim_entities + alfheim_entities + midgard_entities + niflheim_entities + jotunheim_entities + nidavellir_entities + muspellheim_entities + svartalfheim_entities + dlc_entities
|
||||
|
||||
print(center("{0}", 21, " "))
|
||||
print("Entrez '{0}()' pour\\nune nouvelle partie.")
|
||||
events = {{"*": npc, "?": point_of_interest}}
|
||||
keys = {{4: display_stat, 7: spell, 8: misc_stat, 6: inventory, 9: sleep, "s": quick_save}}
|
||||
|
||||
|
||||
def {0}(save_code=None):
|
||||
# stat = [0 - PV, 1 - pièces d'or, 2 - [vitesse, agilité, attaque, defense, magie], 3 - [arme, armure], 4 - ticks, 5 - nom, 6 - classe, 7 - sorts connus : (id, level), 8 - sous-quêtes terminées]
|
||||
if not save_code:
|
||||
stat = init_stat()
|
||||
name = stat[5]
|
||||
data = [{{"main": 0}}, 3, 44, 66]
|
||||
|
||||
print_text("introduction")
|
||||
else:
|
||||
stat, data = decode_save(save_code)
|
||||
|
||||
idk_game = Asci(maps, entities, events, keys)
|
||||
stat, data = idk_game.mainloop(1, stat, data, routine=routine, low_bar=low_bar, door="^_", walkable=".,`' ", exit_key="q")
|
||||
if stat[9] != -1: data[0]["main"] -= stat[9]
|
||||
|
||||
if data[0]["main"] == 1:
|
||||
print_text("conclusion")
|
||||
else:
|
||||
print("{0}(\\"{{}}\\")".format(encode_save(data, stat[:-1])))
|
||||
|
||||
|
||||
# Scenario
|
||||
def shop_interaction(data, stat, nb_choice, *events):
|
||||
for choice in range(nb_choice):
|
||||
if data[0]["main"] == stat[9] + choice + 1:
|
||||
stat[9] = -1
|
||||
if stat[1] < events[choice][0]: return events[choice][2], choice + 1
|
||||
else: return events[choice][1], choice + 1
|
||||
""".format(nom)
|
||||
|
||||
for fn in functions:
|
||||
if fn.endswith("_po"):
|
||||
default_content += f"\n\n\n# - - - {fn[:-3].title()} - - - #\ndef {fn}(coords, identifiant):\n pass"
|
||||
else:
|
||||
default_content += f"\n\n\ndef {fn}(data, stat, entites, identifiant):\n pass"
|
||||
|
||||
with open(f"{nom}.py", "w") as file:
|
||||
file.write(default_content)
|
||||
|
||||
|
||||
nouveau_scenario(argv[1])
|
Loading…
Reference in New Issue