X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=server%2Fthingproliferation.py;h=90230d1f9998a99a288b040317a1987becd4bf99;hb=5b2e37b6247c2853a7cedaa70e0de37815365d18;hp=ad55b3fc7c3c090691f1b5abef7ae71ccd95c5c3;hpb=c94c0575b191d0162d8a1cbbbe4e59cca2e40324;p=plomrogue diff --git a/server/thingproliferation.py b/server/thingproliferation.py index ad55b3f..90230d1 100644 --- a/server/thingproliferation.py +++ b/server/thingproliferation.py @@ -10,24 +10,27 @@ def thingproliferation(t, prol_map): marked passable in prol_map. If there are several map cell candidates, one is selected randomly. """ - from server.config.world_data import directions_db, world_db - from server.config.thingproliferation import field_spreadable, \ - thingprol_plugin_conditions, thingprol_plugin_post_create_hook - from server.utils import mv_yx_in_dir_legal, rand + from server.config.world_data import directions_db, world_db, \ + thingprol_field_spreadable, thingprol_test_hook, \ + thingprol_post_create_hook + from server.utils import mv_yx_in_dir_legal, rand, id_setter from server.new_thing import new_Thing prolscore = world_db["ThingTypes"][t["T_TYPE"]]["TT_PROLIFERATE"] if prolscore and (1 == prolscore or 1 == (rand.next() % prolscore)) and \ - thingprol_plugin_conditions(t): + thingprol_test_hook(t): candidates = [] - for dir in [directions_db[key] for key in sorted(directions_db.keys())]: - mv_result = mv_yx_in_dir_legal(dir, t["T_POSY"], t["T_POSX"]) - c = str(prol_map[mv_result[1] + world_db["MAP_LENGTH"] - + mv_result[2]]) - if mv_result[0] and field_spreadable(c, t): + for key in sorted(directions_db.keys()): + mv_result = mv_yx_in_dir_legal(directions_db[key], t["T_POSY"], + t["T_POSX"]) + c = chr(prol_map[mv_result[1] * world_db["MAP_LENGTH"] + + mv_result[2]]) + if mv_result[0] and thingprol_field_spreadable(c, t): + from server.io import log + log("PROL") candidates.append((mv_result[1], mv_result[2])) if len(candidates): i = rand.next() % len(candidates) - id = id_setter(-1, "Things") + tid = id_setter(-1, "Things") newT = new_Thing(t["T_TYPE"], (candidates[i][0], candidates[i][1])) - world_db["Things"][id] = newT - thingprol_plugin_post_create_hook(t) + world_db["Things"][tid] = newT + thingprol_post_create_hook(t)