home · contact · privacy
Server, plugin: Refactor thing proliferation.
authorChristian Heller <c.heller@plomlompom.de>
Mon, 29 Feb 2016 02:10:05 +0000 (03:10 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 29 Feb 2016 02:10:05 +0000 (03:10 +0100)
plugins/server/PleaseTheIslandGod.py
server/config/thingproliferation.py [deleted file]
server/config/world_data.py
server/thingproliferation.py

index 95b46d0f18fd4595e82db847daa1780d2e8d0e87..d3a5239ccac262e1bcc3719d3a93905cef6a2353 100644 (file)
@@ -46,16 +46,16 @@ def make_map():
             world_db["altar"] = (y, x)
             altar_placed = True
 
-def field_spreadable(c, t):
+def thingprol_field_spreadable(c, t):
     return ":" == c or (world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"]
                         and "." == c)
 
-def thingprol_plugin_conditions(t):
+def thingprol_test(t):
     tt = world_db["ThingTypes"][t["T_TYPE"]]
     return (tt["TT_LIFEPOINTS"] == 0 or \
             t["T_LIFEPOINTS"] >= 0.9 * tt["TT_LIFEPOINTS"])
 
-def thingprol_plugin_post_create_hook(t):
+def thingprol_post_create(t):
     tt = world_db["ThingTypes"][t["T_TYPE"]]
     if (world_db["FAVOR_STAGE"] > 0 and t["T_TYPE"] == world_db["PLANT_0"]):
         world_db["GOD_FAVOR"] += 5
@@ -492,6 +492,9 @@ io_db["worldstate_write_order"] += [[write_metamap_B, "func"]]
 
 import server.config.world_data
 server.config.world_data.symbols_passable += ":_"
+server.config.world_data.thingprol_field_spreadable = thingprol_field_spreadable
+server.config.world_data.thingprol_test_hook = thingprol_test
+server.config.world_data.thingprol_post_create_hook = thingprol_post_create
 
 from server.config.world_data import thing_defaults, thingtype_defaults
 thing_defaults["T_PLAYERDROP"] = 0
@@ -536,12 +539,5 @@ server.config.make_world_helpers.pos_test = pos_test
 server.config.make_world_helpers.world_makable = world_makable
 server.config.make_world_helpers.make_map = make_map
 
-import server.config.thingproliferation
-server.config.thingproliferation.field_spreadable = field_spreadable
-server.config.thingproliferation.thingprol_plugin_conditions = \
-    thingprol_plugin_conditions
-server.config.thingproliferation.thingprol_plugin_post_create_hook = \
-    thingprol_plugin_post_create_hook
-
 import server.config.ai
 server.config.ai.ai_hook_pickup = ai_hook_pickup_test
diff --git a/server/config/thingproliferation.py b/server/config/thingproliferation.py
deleted file mode 100644 (file)
index 3e55c8b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
-# or any later version. For details on its copyright, license, and warranties,
-# see the file NOTICE in the root directory of the PlomRogue source package.
-
-
-from server.config.world_data import symbols_passable
-
-
-field_spreadable = lambda x, y: x in symbols_passable
-thingprol_plugin_conditions = lambda x: True
-thingprol_plugin_post_create_hook = lambda x: None
index dcedabd0529ffdd4f5c51d41c56e3b77d0a205e3..f9e5494149b38fcae8da4d7d7d7ff8dec9c54b25 100644 (file)
@@ -50,3 +50,7 @@ thingtype_defaults = {
 }
 
 symbols_passable = "."
+
+thingprol_field_spreadable = lambda x, y: x in symbols_passable
+thingprol_test_hook = lambda x: True
+thingprol_post_create_hook = lambda x: None
index fec8eb4ec22ea133788343a00e1aaae3b998d283..90230d1f9998a99a288b040317a1987becd4bf99 100644 (file)
@@ -10,21 +10,21 @@ 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.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 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 field_spreadable(c, t):
+            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]))
@@ -33,4 +33,4 @@ def thingproliferation(t, prol_map):
             tid = id_setter(-1, "Things")
             newT = new_Thing(t["T_TYPE"], (candidates[i][0], candidates[i][1]))
             world_db["Things"][tid] = newT
-            thingprol_plugin_post_create_hook(t)
+            thingprol_post_create_hook(t)